package a.f.d.a;

import a.c.bb;
import a.c.x;
import a.f.ad;
import a.f.bd;
import a.f.c.h;
import a.f.fd;
import a.f.rc;
import a.i.db;

import java.util.*;

public class d
  extends a.f.mb
{
  private ob w;
  private zb x;
  private tc y;
  private lc z;
  private mc A;
  private v B;
  private gc C;
  private Map D = new HashMap();
  public static final Object E = "y.layout.hierarchic.incremental.HierarchicLayouter.INCREMENTAL_HINTS_DPKEY";
  public static final Object F = "y.layout.hierarchic.incremental.HierarchicLayouter.EDGE_LAYOUT_DESCRIPTOR_DPKEY";
  public static final Object G = "y.layout.hierarchic.incremental.HierarchicLayouter.NODE_LAYOUT_DESCRIPTOR_DPKEY";
  public static final Object H = "y.layout.hierarchic.incremental.HierarchicLayouter.SWIMLANE_DESCRIPTOR_DPKEY";
  public static final Object I = "y.layout.hierarchic.incremental.HierarchicLayouter.LAYER_VALUE_HOLDER_DPKEY";
  public static final Object J = "y.layout.hierarchic.incremental.HierarchicLayouter.SEQUENCE_VALUE_HOLDER_DPKEY";
  public static final Object K = "y.layout.hierarchic.incremental.HierarchicLayouter.INCREMENTAL_NODES_DPKEY";
  static final Object L = "y.layout.hierarchic.incremental.HierarchicLayouter.NODE_PORT_SIZE_DPKEY";
  static final Object M = "y.layout.hierarchic.incremental.HierarchicLayouter.constraintSupport_DPKEY";
  static final Object N = "groupingSupport";
  private long O = 9223372036854775807L;
  static final String P = "HierarchicLayouter.REVERSED_EDGE_GROUP_PREFIX";
  public static boolean Q;
  public static boolean R;
  
  public d()
  {
    f(false);
    b(false);
    e(false);
    d(false);
    a.f.vc localvc = a();
    if (!R)
    {
      d(localvc);
      if (localvc == null) {}
    }
    else
    {
      c(true);
    }
    a.f.cb localcb = new a.f.cb();
    localcb.a(false);
    j(localcb);
  }
  
  protected a.f.vc a()
  {
    a.f.pc localpc = new a.f.pc();
    localpc.e(false);
    localpc.f(true);
    return localpc;
  }
  
  protected zb s()
  {
    return new dc(new a.f.d.pb());
  }
  
  public long t()
  {
    return this.O;
  }
  
  public void a(long paramLong)
  {
    this.O = Math.max(0L, paramLong);
  }
  
  protected tc u()
  {
    return new t();
  }
  
  protected v v()
  {
    return new r();
  }
  
  protected lc w()
  {
    return new u();
  }
  
  protected mc x()
  {
    return null;
  }
  
  protected gc y()
  {
    return new uc();
  }
  
  public void a(zb paramzb)
  {
    if (paramzb == null) {
      throw new NullPointerException();
    }
    this.x = paramzb;
  }
  
  public zb z()
  {
    if (!R) {
      if (this.x == null) {
        this.x = s();
      }
    }
    return this.x;
  }
  
  public void a(tc paramtc)
  {
    if (paramtc == null) {
      throw new NullPointerException();
    }
    this.y = paramtc;
  }
  
  public tc A()
  {
    if (!R) {
      if (this.y == null) {
        this.y = u();
      }
    }
    return this.y;
  }
  
  public void a(gc paramgc)
  {
    if (paramgc == null) {
      throw new NullPointerException();
    }
    this.C = paramgc;
  }
  
  public gc B()
  {
    if (!R) {
      if (this.C == null) {
        this.C = y();
      }
    }
    return this.C;
  }
  
  public void a(lc paramlc)
  {
    if (paramlc == null) {
      throw new NullPointerException();
    }
    this.z = paramlc;
  }
  
  public lc C()
  {
    if (!R) {
      if (this.z == null) {
        this.z = w();
      }
    }
    return this.z;
  }
  
  public void a(mc parammc)
  {
    this.A = parammc;
  }
  
  public mc D()
  {
    if (!R) {
      if (this.A == null) {
        this.A = x();
      }
    }
    return this.A;
  }
  
  public void a(v paramv)
  {
    if (paramv == null) {
      throw new NullPointerException();
    }
    this.B = paramv;
  }
  
  public v F()
  {
    if (!R) {
      if (this.B == null) {
        this.B = v();
      }
    }
    return this.B;
  }
  
  public boolean b(a.f.o paramo)
  {
    return true;
  }
  
  public Object a(Object paramObject)
  {
    return this.D.get(paramObject);
  }
  
  public void a(Object paramObject1, Object paramObject2)
  {
    boolean bool = R;
    if (!bool) {
      if (paramObject2 == null)
      {
        if (bool) {
          break label44;
        }
        this.D.remove(paramObject1);
        if (!Q) {
          return;
        }
      }
    }
    label44:
    this.D.put(paramObject1, paramObject2);
  }
  
  private static a.c.ab a(a.f.p paramp)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if (!bool2) {
      if (a.a.l.a(paramp)) {
        return new a.c.ab();
      }
    }
    a.c.k localk = paramp.c(a.f.d.e.w);
    if ((bool2) || (localk == null)) {
      localk = a.i.q.a(new Integer(1));
    }
    a.c.n localn = db.b();
    Object localObject1 = paramp.w();
    do
    {
      if (!((a.c.m)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.m)localObject1).a();
      localn.a(localObject2, localk.getInt(localObject2));
      ((a.c.m)localObject1).f();
    } while (!bool1);
    Object localObject2 = new a.c.ab();
    Object localObject3;
    label235:
    do
    {
      for (;;)
      {
        if (!(localObject1 = a.a.f.a(paramp, true)).isEmpty())
        {
          a.c.d locald2;
          int k;
          do
          {
            if (((a.c.ab)localObject1).size() == 1)
            {
              a.c.d locald1 = ((a.c.ab)localObject1).m();
              ((a.c.ab)localObject2).add(locald1);
              paramp.a(locald1);
              if ((!bool2) && (!bool1)) {
                break;
              }
            }
            int i = 2147483647;
            localObject3 = ((a.c.ab)localObject1).l();
            do
            {
              do
              {
                if (!((a.c.m)localObject3).e()) {
                  break label235;
                }
                int j = localn.getInt(((a.c.m)localObject3).a());
                if (bool1) {
                  break;
                }
                if (j < i) {
                  i = j;
                }
                ((a.c.m)localObject3).f();
              } while (!bool1);
            } while (bool2);
            localObject3 = ((a.c.ab)localObject1).l();
            if (!((a.c.m)localObject3).e()) {
              break;
            }
            if (bool2) {
              break label362;
            }
            locald2 = ((a.c.m)localObject3).a();
            k = localn.getInt(locald2) - i;
            localn.a(locald2, k);
          } while (bool2);
          if (bool1) {
            break label357;
          }
          if (!bool1)
          {
            if (k == 0)
            {
              ((a.c.ab)localObject2).add(locald2);
              paramp.a(locald2);
            }
            ((a.c.m)localObject3).f();
            if (!bool1) {
              break;
            }
          }
        }
      }
    } while (bool2);
    ((a.c.ab)localObject2).a(new x_(localk));
    label357:
    label362:
    a.c.m localm = ((a.c.ab)localObject2).l();
    label425:
    do
    {
      if (!localm.e()) {
        break;
      }
      localObject3 = localm.a();
      paramp.d((a.c.d)localObject3);
      if (!bool2) {
        if (!a.a.l.a(paramp))
        {
          paramp.a((a.c.d)localObject3);
          if (bool2) {
            continue;
          }
          if (!bool1) {
            break label425;
          }
        }
      }
      ((a.c.ab)localObject2).b(localm);
      localm.f();
    } while (!bool1);
    return localObject2;
  }
  
  public void a(a.f.o paramo)
  {
    boolean bool10 = R;
    boolean bool9 = Q;
    if (((!bool10) && (paramo == null)) || (paramo.n())) {
      return;
    }
    long l1 = System.currentTimeMillis();
    a.c.k localk1 = paramo.c(a.f.d.e.w);
    a.c.ab localab = new a.c.ab();
    if (localk1 != null)
    {
      localObject1 = new a.f.p(paramo);
      localObject2 = a((a.f.p)localObject1);
      localObject3 = ((a.c.ab)localObject2).l();
      do
      {
        if (!((a.c.m)localObject3).e()) {
          break;
        }
        localObject4 = (a.c.d)((a.f.p)localObject1).t(((a.c.m)localObject3).a());
        if (!bool10)
        {
          if (bool9) {
            break label142;
          }
          paramo.e((a.c.d)localObject4);
          localab.add(localObject4);
          ((a.c.m)localObject3).f();
        }
      } while (!bool9);
    }
    label142:
    Object localObject1 = paramo.C();
    Object localObject2 = paramo.B();
    Object localObject3 = new t_((x)localObject2, (a.c.n)localObject1);
    Object localObject4 = a((bc)localObject3);
    ab localab1 = O();
    a.c.k localk2 = f(paramo);
    a.c.k localk3 = a(paramo, j(paramo));
    a.c.k localk4 = paramo.c(a.f.oc.a);
    a.i.sb localsb = null;
    a.c.n localn = null;
    if (localk4 != null)
    {
      localn = paramo.C();
      localsb = new a.i.sb(localn, paramo, a.f.oc.a);
    }
    s_ locals_ = new s_(paramo, (ac)localObject4, (bc)localObject3, localab1, (x)localObject2, (a.c.n)localObject1, i(paramo), h(paramo), localk3, localk2, localn, localsb);
    zb localzb1 = K();
    a(paramo, locals_);
    x localx1 = paramo.B();
    paramo.a(ib.a, localx1);
    x localx2 = paramo.B();
    paramo.a(ib.b, localx2);
    hb localhb = a(paramo, (bc)localObject3, localk3);
    cb localcb = H();
    k localk = a((bc)localObject3, locals_);
    cd localcd = L();
    jb localjb = M();
    qc localqc = I();
    ed localed = a(localk, localhb);
    tc localtc1 = G();
    zb localzb2 = z();
    tc localtc2 = A();
    gc localgc = B();
    v localv = F();
    lc locallc = C();
    if (!bool10)
    {
      if ((locallc instanceof u)) {
        ((u)locallc).a(localk);
      }
    }
    else {
      ((u)locallc).a(localcb);
    }
    mc localmc = D();
    a.f.yb localyb = new a.f.yb();
    localyb.d(paramo);
    sb localsb1 = a(localyb);
    sb.a(localsb1, paramo);
    ic localic = J();
    localcd.a(localic);
    locals_.a(localed);
    locals_.a(localjb);
    locals_.a(localcb);
    locals_.a(localk);
    locals_.a(localcd);
    locals_.a(localhb);
    boolean bool1 = Boolean.TRUE.equals(a("HierarchicLayouter.considerNodeLabelsForSelfloops"));
    boolean bool2 = Boolean.TRUE.equals(a("HierarchicLayouter.considerNodeLabelsForDrawing"));
    boolean bool3 = Boolean.TRUE.equals(a("HierarchicLayouter.considerNodeLabelsForRouting"));
    boolean bool4 = Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.automaticEdgeGroupingEnabled"));
    boolean bool5 = Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.backloopRoutingEnabled"));
    boolean bool6 = Boolean.TRUE.equals(a("HierarchicLayouter.keepLayeringForGroupsWithSwimlanes"));
    boolean bool7 = Boolean.TRUE.equals(a("HierarchicLayouter.stopAfterLayering"));
    boolean bool8 = Boolean.TRUE.equals(a("HierarchicLayouter.stopAfterSequencing"));
    x localx3 = paramo.B();
    paramo.a(K, localx3);
    paramo.a(N, a.i.q.a(localhb));
    m localm = k(paramo);
    paramo.a(M, a.i.q.a(localm));
    try
    {
      x localx4 = db.a();
      if (!bool10) {
        if ((T()) && (P()))
        {
          localObject5 = new h(paramo);
          a.c.w localw = paramo.v();
          do
          {
            if (!localw.e()) {
              break;
            }
            a.c.e locale = localw.d();
            if (bool9) {
              break label814;
            }
            if (!bool10)
            {
              if (((h)localObject5).e(locale))
              {
                localx4.a(locale, paramo.u(locale));
                paramo.b(locale, 1.0D, 1.0D);
              }
              localw.f();
            }
          } while (!bool9);
          if (!bool10) {
            label814:
            ((h)localObject5).e();
          }
        }
        else
        {
          localhb.b();
          localcb.a(paramo);
        }
      }
      Object localObject5 = kc.d(paramo);
      if (!bool10) {}
      long l2 = this.O == 9223372036854775807L ? 9223372036854775807L : (this.O * 0.2D);
      a(localzb2, l2);
      Object localObject6;
      Object localObject7;
      Object localObject8;
      Object localObject9;
      Object localObject10;
      Object localObject11;
      Object localObject12;
      if (!bool10) {
        if (P())
        {
          if (localObject5 != null) {
            if (bool10) {}
          }
          int i = localhb.o() ? 1 : 0;
          localObject6 = null;
          localObject7 = paramo.c(kc.b);
          a.c.k localk5 = paramo.c(a.f.c.i.b);
          if (!bool10)
          {
            if (i != 0) {
              localhb.c();
            }
          }
          else
          {
            localObject8 = db.a();
            localObject9 = db.a();
            localObject6 = a(paramo, (kc)localObject5, (x)localObject8, (x)localObject9);
            localObject10 = new a.i.p()
            {
              private final a.c.k val$originalNode2PartionCellDP;
              private final x val$groupNode2Cell;
              
              public Object get(Object paramAnonymousObject)
              {
                boolean bool = d.R;
                if (!bool) {
                  if (this.val$originalNode2PartionCellDP != null)
                  {
                    if (bool) {
                      break label53;
                    }
                    if (this.val$originalNode2PartionCellDP.get(paramAnonymousObject) != null) {
                      return this.val$originalNode2PartionCellDP.get(paramAnonymousObject);
                    }
                  }
                }
                label53:
                return this.val$groupNode2Cell.get(paramAnonymousObject);
              }
            };
            paramo.a(kc.b, (a.c.k)localObject10);
            localObject11 = new Object();
            localObject12 = new a.i.p()
            {
              private final x val$node2IsParentRoot;
              private final Object val$root;
              private final a.c.k val$originalNode2ParentNodeDP;
              
              public Object get(Object paramAnonymousObject)
              {
                boolean bool = d.R;
                if (!bool) {
                  if (this.val$node2IsParentRoot.getBool(paramAnonymousObject)) {
                    return this.val$root;
                  }
                }
                if (!bool) {
                  if (this.val$originalNode2ParentNodeDP.get(paramAnonymousObject) == null) {
                    return this.val$root;
                  }
                }
                return this.val$originalNode2ParentNodeDP.get(paramAnonymousObject);
              }
            };
            paramo.a(a.f.c.i.b, (a.c.k)localObject12);
            localhb.b();
          }
          localObject8 = new k_(localzb2, localzb1, localk2, localx3, false);
          ((k_)localObject8).a(paramo, (ac)localObject4, (bc)localObject3);
          if (!bool10) {
            if (T())
            {
              localhb.c();
              localObject9 = paramo.v();
              do
              {
                do
                {
                  if (!((a.c.w)localObject9).e()) {
                    break;
                  }
                  localObject10 = ((a.c.w)localObject9).d();
                  if ((!bool10) && (bool9)) {
                    break label1278;
                  }
                  if (localx4.get(localObject10) != null) {
                    paramo.a((a.c.e)localObject10, (a.d.s)localx4.get(localObject10));
                  }
                  ((a.c.w)localObject9).f();
                } while (!bool9);
                localhb.b();
              } while (bool10);
              if (bool10) {
                break label1211;
              }
              if (!bool9) {
                break label1209;
              }
            }
          }
          if (!bool10) {
            if (S())
            {
              localObject9 = new w_(null);
              ((w_)localObject9).a(paramo, (ac)localObject4, (bc)localObject3);
            }
          }
          label1209:
          label1211:
          if (!bool10)
          {
            if (i == 0) {
              break label1276;
            }
            localhb.c();
            ((a.i.y)localObject6).g();
            paramo.a(kc.b, (a.c.k)localObject7);
            paramo.a(a.f.c.i.b, localk5);
            localhb.b();
          }
          if (!bool9) {
            break label1276;
          }
        }
      }
      a(paramo, localk2, localzb2, (ac)localObject4, (bc)localObject3, localzb1, localx3, localhb);
      label1276:
      if (localk1 != null)
      {
        label1278:
        a.c.m localm1 = localab.l();
        do
        {
          if (!localm1.e()) {
            break;
          }
          paramo.e(localm1.a());
          localm1.f();
          if (bool10) {
            break label1364;
          }
          if (bool9) {
            break label1360;
          }
        } while (!bool9);
      }
      a(paramo, (ac)localObject4);
      localhb.a((ac)localObject4);
      if (!bool10) {
        localic.c(paramo, (ac)localObject4, (bc)localObject3);
      }
      label1360:
      label1364:
      if (!bool10) {}
      int j = (kc.e(paramo)) || (paramo.c(xb.a) != null) ? 1 : 0;
      if ((bool10) || ((j == 0) && (!bool6)))
      {
        localhb.f((ac)localObject4);
        localhb.a((ac)localObject4);
      }
      if (localObject5 != null)
      {
        localObject6 = paramo.c(kc.b);
        if (bool10) {
          break label1628;
        }
        label1584:
        if ((localObject5 != null) && (localObject6 != null))
        {
          localObject7 = ((kc)localObject5).c(0);
          int m = 0;
          label1460:
          do
          {
            if (m >= ((ac)localObject4).a()) {
              break;
            }
            localObject8 = ((ac)localObject4).a(m);
            localObject9 = null;
            if (bool10) {
              break label1643;
            }
            if (bool9) {
              break label1641;
            }
            localObject10 = ((vb)localObject8).c().l();
            for (;;)
            {
              if (!((a.c.w)localObject10).e()) {
                break label1584;
              }
              localObject11 = ((a.c.w)localObject10).d();
              localObject12 = (jc)((a.c.k)localObject6).get(localObject11);
              if ((bool10) || (bool10)) {
                break label1460;
              }
              if (bool9) {
                break;
              }
              if ((bool10) || (localObject12 != null))
              {
                localObject9 = ((jc)localObject12).c();
                break label1584;
              }
              ((a.c.w)localObject10).f();
            }
            if (!bool10)
            {
              if (localObject9 == null) {
                localObject9 = localObject7;
              }
              ((vb)localObject8).a((pc)localObject9);
            }
            localObject7 = localObject9;
            m++;
          } while (!bool9);
        }
      }
      localhb.c((ac)localObject4, locals_);
      label1628:
      if (!bool10)
      {
        localhb.a(paramo, (bc)localObject3);
        label1641:
        label1643:
        if (!bool10) {
          if (bool5) {
            p.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          }
        }
        if (!bool10)
        {
          if (bool4) {
            l.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          }
          localab1.a(paramo, (bc)localObject3);
          localcd.a(paramo, (ac)localObject4, (bc)localObject3, locals_, localn, localsb);
          a(localmc, paramo, (ac)localObject4, (bc)localObject3, locals_);
          localhb.a((ac)localObject4);
          localed.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          localhb.i((ac)localObject4);
          localhb.k((ac)localObject4);
          localhb.l((ac)localObject4);
          localhb.a((ac)localObject4);
          localk.a(paramo);
          localjb.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          localhb.b((ac)localObject4);
          localhb.c((ac)localObject4);
          localhb.b((ac)localObject4, locals_);
          localhb.a((ac)localObject4, locals_);
        }
      }
      else
      {
        localhb.a((ac)localObject4, localcb);
      }
      if (!bool10) {
        if (!bool7)
        {
          long l3 = System.currentTimeMillis();
          long l5 = this.O - (l3 - l1);
          if (!bool10) {}
          long l7 = this.O == 9223372036854775807L ? 9223372036854775807L : Math.max(Math.floor(l5 * 0.4D), Math.floor(this.O * 0.3D));
          a(localtc2, l7);
          localObject12 = null;
          if (localk2 != null) {
            localObject12 = a(paramo, (ac)localObject4, (bc)localObject3, localk2, localhb);
          }
          localtc2.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          localhb.g((ac)localObject4);
          localic.a(paramo, (ac)localObject4, (bc)localObject3);
          if ((bool10) || (localm != null)) {
            localm.a(paramo, (ac)localObject4, (bc)localObject3);
          }
          if (localObject12 != null)
          {
            localhb.a(localx3);
            localhb.f();
            a((i_)localObject12, localx3, paramo, (ac)localObject4, (bc)localObject3);
            localhb.a((ac)localObject4);
            localhb.c((ac)localObject4);
            localhb.g((ac)localObject4);
          }
          if (!bool10) {}
          long l8 = l7 == 9223372036854775807L ? 9223372036854775807L : Math.max(0L, l7 - System.currentTimeMillis() + l3);
          a(localtc1, l8);
          localtc1.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          localhb.r((ac)localObject4);
          k = localk.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
          b(localmc, paramo, (ac)localObject4, (bc)localObject3, locals_);
          if ((!bool10) && (!bool9)) {
            break label2142;
          }
        }
      }
      int k = 0;
      label2142:
      List localList = localsb1.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
      localhb.d((ac)localObject4, locals_);
      localhb.p((ac)localObject4);
      localic.a(paramo, (ac)localObject4, (bc)localObject3);
      if (!bool10)
      {
        if (localm != null) {
          localm.a(paramo, (ac)localObject4, (bc)localObject3);
        }
        localk.c(paramo, (ac)localObject4, (bc)localObject3, locals_);
      }
      if (!bool10)
      {
        if (k > 0) {
          localk.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
        }
        localhb.o((ac)localObject4);
        localic.a(paramo, (ac)localObject4, (bc)localObject3);
      }
      if (!bool10)
      {
        if (localm != null) {
          localm.a(paramo, (ac)localObject4, (bc)localObject3);
        }
        localhb.q((ac)localObject4);
        localcb.a(paramo, (bc)localObject3);
        locallc.a(paramo, (ac)localObject4, (bc)localObject3, locals_);
        localqc.a(paramo, (bc)localObject3, (byte)1, bool1);
        localcb.a(paramo, (ac)localObject4, (bc)localObject3);
        localgc.a(paramo, (bc)localObject3, (ac)localObject4);
        localed.c(paramo, (ac)localObject4, (bc)localObject3, locals_);
        localqc.a(paramo, (bc)localObject3, (byte)2, bool2);
      }
      long l4;
      long l6;
      if (!bool10)
      {
        if (!bool7)
        {
          if (bool10) {
            break label2546;
          }
          if (!bool8)
          {
            localv.a(paramo, (ac)localObject4, (bc)localObject3);
            l4 = this.O - (System.currentTimeMillis() - l1);
            if (!bool10) {}
            l6 = this.O == 9223372036854775807L ? 9223372036854775807L : Math.max(Math.floor(l4 * 0.7D), Math.floor(this.O * 0.3D));
            a(localgc, l6);
            try
            {
              localgc.a(paramo, (bc)localObject3, (ac)localObject4, localv);
            }
            finally
            {
              localyb.e(paramo);
              localv.b(paramo, (ac)localObject4, (bc)localObject3);
            }
          }
        }
        localed.e(paramo, (ac)localObject4, (bc)localObject3, locals_);
        if (bool10) {
          break label2721;
        }
      }
      if (!bool7) {
        label2546:
        if (!bool8)
        {
          localqc.a(paramo, (bc)localObject3, (byte)3, bool3);
          l4 = this.O - (System.currentTimeMillis() - l1);
          if (!bool10) {}
          l6 = this.O == 9223372036854775807L ? 9223372036854775807L : Math.max(l4, Math.floor(this.O * 0.2D));
          a(localed, l6);
          localed.a(paramo, (ac)localObject4, (bc)localObject3);
        }
      }
      localed.d(paramo, (ac)localObject4, (bc)localObject3, locals_);
      localk.b(paramo);
      localed.g(paramo, (ac)localObject4, (bc)localObject3, locals_);
      localsb1.a(paramo, (ac)localObject4, (bc)localObject3, locals_, localList);
      localhb.l();
      localjb.a(paramo, (bc)localObject3);
      localhb.a(paramo);
      localed.b(paramo, (ac)localObject4, (bc)localObject3, locals_);
      label2721:
      HashSet localHashSet = new HashSet();
      localcd.a(paramo, (ac)localObject4, (bc)localObject3, localHashSet);
      localsb1.c(paramo, (ac)localObject4, (bc)localObject3);
      l(paramo);
      localcd.a(paramo, (bc)localObject3, localHashSet);
      localab1.b(paramo, (bc)localObject3);
      localhb.c();
      localhb.e((ac)localObject4);
      localcb.b(paramo);
      localcb.b(paramo, (ac)localObject4, (bc)localObject3);
      localhb.m();
      localhb.h((ac)localObject4);
      localsb1.a(paramo, (ac)localObject4, (bc)localObject3);
      b(paramo, (ac)localObject4);
      a(paramo, (ac)localObject4, (bc)localObject3);
    }
    finally
    {
      if ((bool10) || (localm != null)) {
        localm.a();
      }
      if ((bool10) || (localhb != null)) {
        localhb.g();
      }
      if ((bool10) || (localcd != null)) {
        localcd.a(paramo);
      }
      sb.a(paramo);
      if (!bool10)
      {
        if (localsb != null)
        {
          localsb.b();
          paramo.a(localn);
          localn = null;
          localsb = null;
        }
        paramo.a((a.c.n)localObject1);
        paramo.a((x)localObject2);
        paramo.a(localx3);
        paramo.j(K);
        paramo.j(M);
        paramo.j(N);
        paramo.j(ib.a);
        paramo.a(localx1);
        paramo.j(ib.b);
        paramo.a(localx2);
      }
    }
  }
  
  private void a(a.f.o paramo, ac paramac)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if ((bool2) || (kc.e(paramo)))
    {
      a.c.k localk = paramo.c(kc.b);
      x localx = db.a();
      int[] arrayOfInt = new int[paramac.a()];
      int i = 0;
      int j = 0;
      a.c.e locale;
      label213:
      label215:
      do
      {
        while (bool2) {
          if (j < paramac.a())
          {
            localObject = paramac.a(j);
            k = 0;
            int m = 0;
            if (bool1) {
              break label254;
            }
            a.c.w localw = ((vb)localObject).c().l();
            do
            {
              do
              {
                if (!localw.e()) {
                  break;
                }
                locale = localw.d();
                localx.a(locale, j);
                jc localjc = (jc)localk.get(locale);
                if (bool2) {
                  break label215;
                }
                if (bool1) {
                  break label213;
                }
                if (localjc != null)
                {
                  m += localjc.c().a();
                  k++;
                }
                localw.f();
              } while (!bool1);
            } while (bool2);
            if ((bool2) || (k > 0)) {
              i = m / k;
            }
            arrayOfInt[j] = i;
            j++;
            if (!bool1) {
              break;
            }
          }
        }
        if (paramac.a() <= 0) {
          break;
        }
        paramac.b(0);
        if ((!bool2) && (bool1)) {
          return;
        }
      } while (!bool1);
      label254:
      a.c.e[] arrayOfe = paramo.t();
      Object localObject = new y_(localk, localx, arrayOfInt);
      a.i.l.a(arrayOfe, (Comparator)localObject);
      int k = 0;
      vb localvb = paramac.a((byte)0, k);
      if (!bool2)
      {
        int n = 0;
        do
        {
          if (n >= arrayOfe.length) {
            break;
          }
          locale = arrayOfe[n];
          if (!bool2)
          {
            if (n > 0)
            {
              if (bool2) {
                continue;
              }
              if (((y_)localObject).compare(arrayOfe[(n - 1)], locale) != 0)
              {
                k++;
                localvb = paramac.a((byte)0, k);
              }
            }
            localvb.a(locale);
            n++;
          }
        } while (!bool1);
      }
    }
  }
  
  private void a(ed paramed, long paramLong)
  {
    if ((R) || ((paramed instanceof w)))
    {
      w localw = (w)paramed;
      localw.a(paramLong);
    }
  }
  
  private void a(zb paramzb, long paramLong)
  {
    boolean bool = R;
    Object localObject = paramzb;
    if (!bool) {
      if ((localObject instanceof dc)) {
        localObject = ((dc)localObject).a();
      }
    }
    if (!bool) {
      if ((localObject instanceof hc)) {
        localObject = ((hc)localObject).a();
      }
    }
    if ((bool) || ((localObject instanceof a.f.d.pb))) {
      ((a.f.d.pb)localObject).a(paramLong);
    }
  }
  
  private void a(tc paramtc, long paramLong)
  {
    boolean bool = R;
    if (!bool) {
      if ((paramtc instanceof t)) {
        ((t)paramtc).a(paramLong);
      }
    }
    if ((bool) || ((Q) && ((bool) || ((paramtc instanceof q))))) {
      ((q)paramtc).a(paramLong);
    }
  }
  
  private void a(gc paramgc, long paramLong)
  {
    if ((R) || ((paramgc instanceof uc))) {
      ((uc)paramgc).a(paramLong);
    }
  }
  
  private void a(a.f.o paramo, a.c.k paramk, zb paramzb1, ac paramac, bc parambc, zb paramzb2, x paramx, hb paramhb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.ab localab1 = new a.c.ab();
    a.c.ab localab2 = new a.c.ab();
    a.c.n localn = db.b();
    if (!bool2) {
      if ((R()) && ((bool2) || (paramhb != null))) {
        if (!bool2)
        {
          if (paramhb.o())
          {
            paramhb.c();
            a(paramo, localab2, paramhb, null);
            a(paramo, localab1, localab2, paramhb, null, localn);
          }
        }
        else {
          paramhb.b();
        }
      }
    }
    i_ locali_ = a(paramo, paramk, paramhb, localn);
    x localx = db.a();
    if (!bool2)
    {
      if ((paramzb1 instanceof o))
      {
        Iterator localIterator = locali_.a.iterator();
        a.c.e locale;
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          if (bool2) {
            break label231;
          }
          locale = (a.c.e)localIterator.next();
          paramo.e(locale);
          localx.a(locale, true);
          if (bool1) {
            break label221;
          }
        } while (!bool1);
        ((o)paramzb1).a(localx);
        if (bool2) {
          break label304;
        }
        paramzb1.a(paramo, paramac, parambc);
        label221:
        label231:
        localIterator = locali_.a.iterator();
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          locale = (a.c.e)localIterator.next();
          localx.a(locale, false);
          paramo.d(locale);
          if (bool2) {
            break label349;
          }
          if (bool1) {
            break label345;
          }
        } while (!bool1);
      }
      paramo.a("AspectRatioComponentLayerer.GROUPING_SUPPORT", a.i.q.a(paramhb));
    }
    label304:
    paramzb1.a(paramo, paramac, parambc);
    if (!bool2)
    {
      paramo.j("AspectRatioComponentLayerer.GROUPING_SUPPORT");
      a(paramo, paramac);
    }
    a(paramzb2, paramo, paramac, parambc, locali_, paramx, localx);
    label345:
    if (R()) {
      label349:
      if ((bool2) || (paramhb != null)) {
        if (!bool2)
        {
          if (paramhb.o())
          {
            paramhb.c();
            a(paramo, localab1, localab2);
          }
        }
        else {
          paramhb.b();
        }
      }
    }
  }
  
  private void a(a.f.o paramo, a.c.ab paramab1, a.c.ab paramab2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.m localm = paramab1.l();
    a.c.d locald;
    do
    {
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        paramo.a(locald);
        localm.f();
        if (bool2) {
          break label81;
        }
        if (bool1) {
          break label74;
        }
      } while (!bool1);
    } while (bool2);
    localm = paramab2.l();
    label74:
    label81:
    do
    {
      if (!localm.e()) {
        break;
      }
      locald = localm.a();
      paramo.g(locald);
      localm.f();
    } while (!bool1);
  }
  
  private void a(a.f.o paramo, a.c.ab paramab1, a.c.ab paramab2, hb paramhb, a.c.e parame, a.c.n paramn)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Object localObject2;
    if (parame != null)
    {
      localObject1 = paramhb.j(parame);
      localObject2 = new a.c.ab(parame.m());
      Object localObject3 = ((a.c.ab)localObject2).l();
      Object localObject4;
      Object localObject5;
      Object localObject6;
      Object localObject7;
      Object localObject8;
      label196:
      do
      {
        if (!((a.c.m)localObject3).e()) {
          break;
        }
        localObject4 = ((a.c.m)localObject3).a();
        localObject5 = ((a.c.d)localObject4).e();
        if (bool1) {
          break label404;
        }
        if (localObject5 != parame)
        {
          if ((bool2) || (paramhb.g((a.c.e)localObject5)))
          {
            localObject6 = paramhb.j((a.c.e)localObject5);
            localObject7 = ((bb)localObject6).l();
          }
          while (((a.c.w)localObject7).e())
          {
            localObject8 = ((a.c.w)localObject7).d();
            a((bb)localObject1, paramo, (a.c.e)localObject8, paramab1, paramn, true);
            ((a.c.w)localObject7).f();
            if ((!bool2) && (bool1)) {
              break label196;
            }
            if (bool1)
            {
              if (bool2) {
                break label196;
              }
              a((bb)localObject1, paramo, (a.c.e)localObject5, paramab1, paramn, true);
            }
          }
          paramab2.add(localObject4);
          paramo.f((a.c.d)localObject4);
        }
        ((a.c.m)localObject3).f();
      } while (!bool1);
      localObject3 = new a.c.ab(parame.n());
      if (!bool2)
      {
        localObject4 = ((a.c.ab)localObject3).l();
        label386:
        do
        {
          if (!((a.c.m)localObject4).e()) {
            break;
          }
          localObject5 = ((a.c.m)localObject4).a();
          localObject6 = ((a.c.d)localObject5).f();
          if (localObject6 != parame)
          {
            if ((bool2) || (paramhb.g((a.c.e)localObject6)))
            {
              localObject7 = paramhb.j((a.c.e)localObject6);
              localObject8 = ((bb)localObject7).l();
            }
            while (((a.c.w)localObject8).e())
            {
              a.c.e locale = ((a.c.w)localObject8).d();
              a((bb)localObject1, paramo, locale, paramab1, paramn, false);
              ((a.c.w)localObject8).f();
              if ((!bool2) && (bool1)) {
                break label386;
              }
              if (bool1)
              {
                if (bool2) {
                  break label386;
                }
                a((bb)localObject1, paramo, (a.c.e)localObject6, paramab1, paramn, false);
              }
            }
            paramab2.add(localObject5);
            paramo.f((a.c.d)localObject5);
          }
          ((a.c.m)localObject4).f();
        } while (!bool1);
      }
    }
    label404:
    Object localObject1 = paramhb.k(parame).l();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.w)localObject1).d();
      if (!bool2)
      {
        if (paramhb.g((a.c.e)localObject2)) {
          a(paramo, paramab1, paramab2, paramhb, (a.c.e)localObject2, paramn);
        }
        ((a.c.w)localObject1).f();
      }
    } while (!bool1);
  }
  
  private void a(a.f.o paramo, a.c.ab paramab, hb paramhb, a.c.e parame)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Object localObject2;
    if (parame != null)
    {
      localObject1 = a(paramhb, parame);
      ((Set)localObject1).add(parame);
      localObject2 = new a.c.ab();
      Object localObject3 = parame.i();
      do
      {
        if (localObject3 == null) {
          break;
        }
        if (bool1) {
          break label199;
        }
        if (((Set)localObject1).contains(((a.c.d)localObject3).e())) {
          ((a.c.ab)localObject2).add(localObject3);
        }
        localObject3 = ((a.c.d)localObject3).j();
      } while (!bool1);
      a.c.d locald;
      if (!bool2)
      {
        localObject3 = ((a.c.ab)localObject2).l();
        do
        {
          if (!((a.c.m)localObject3).e()) {
            break;
          }
          if (bool2) {
            break label180;
          }
          locald = ((a.c.m)localObject3).a();
          paramab.add(locald);
          paramo.f(locald);
          ((a.c.m)localObject3).f();
          if (bool1) {
            break label175;
          }
        } while (!bool1);
        if (!bool2) {
          localObject2 = new a.c.ab();
        }
        label175:
        label180:
        localObject3 = parame.h();
        if (localObject3 != null) {
          label199:
          if (!((Set)localObject1).contains(((a.c.d)localObject3).f())) {}
        }
        while (bool2)
        {
          ((a.c.ab)localObject2).add(localObject3);
          localObject3 = ((a.c.d)localObject3).i();
          if (!bool1) {
            break;
          }
        }
      }
      localObject3 = ((a.c.ab)localObject2).l();
      do
      {
        if (!((a.c.m)localObject3).e()) {
          break;
        }
        locald = ((a.c.m)localObject3).a();
        paramab.add(locald);
        paramo.f(locald);
        ((a.c.m)localObject3).f();
      } while (!bool1);
    }
    Object localObject1 = paramhb.k(parame).l();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.w)localObject1).d();
      if (!bool2)
      {
        if (paramhb.g((a.c.e)localObject2)) {
          a(paramo, paramab, paramhb, (a.c.e)localObject2);
        }
        ((a.c.w)localObject1).f();
      }
    } while (!bool1);
  }
  
  private Set a(hb paramhb, a.c.e parame)
  {
    if (!paramhb.o()) {
      return null;
    }
    HashSet localHashSet = new HashSet();
    paramhb.a(parame, new hb.g_()
    {
      private final a.c.e val$groupNode;
      private final Set val$result;
      
      public void a(a.c.e paramAnonymouse1, a.c.e paramAnonymouse2)
      {
        if (((d.R) || (paramAnonymouse2 != null)) && (paramAnonymouse2 != this.val$groupNode)) {
          this.val$result.add(paramAnonymouse2);
        }
        this.val$result.add(paramAnonymouse1);
      }
    });
    return localHashSet;
  }
  
  private void a(bb parambb, a.f.o paramo, a.c.e parame, a.c.ab paramab, a.c.n paramn, boolean paramBoolean)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.w localw = parambb.l();
    label84:
    do
    {
      if (!localw.e()) {
        break;
      }
      a.c.e locale = localw.d();
      if (locale != parame)
      {
        a.c.d locald;
        if (paramBoolean)
        {
          locald = paramo.a(parame, locale);
          if (bool2) {
            break label84;
          }
          if (!bool1) {}
        }
        else
        {
          locald = paramo.a(locale, parame);
        }
        paramab.add(locald);
        paramn.a(locald, true);
      }
      localw.f();
    } while (!bool1);
  }
  
  protected h e(a.f.o paramo)
  {
    if (!h.c(paramo)) {
      return new h(paramo);
    }
    return null;
  }
  
  private a.c.k f(a.f.o paramo)
  {
    a.c.k localk = g(paramo);
    if (localk != null) {
      return new ac_(localk, null);
    }
    return null;
  }
  
  protected a.c.k g(a.f.o paramo)
  {
    return paramo.c(E);
  }
  
  protected a.c.k h(a.f.o paramo)
  {
    return paramo.c(F);
  }
  
  protected a.c.k i(a.f.o paramo)
  {
    return paramo.c(G);
  }
  
  protected a.c.k j(a.f.o paramo)
  {
    return paramo.c(H);
  }
  
  private a.c.k a(a.f.o paramo, a.c.k paramk)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if ((bool2) || (paramk != null))
    {
      a.c.k localk1 = paramo.c(a.f.c.i.a);
      a.c.k localk2 = paramo.c(a.f.c.i.b);
      a.c.k localk3 = paramo.c(a.f.c.i.c);
      if (!bool2) {
        if (localk1 != null)
        {
          if (bool2) {
            break label178;
          }
          if (localk2 != null)
          {
            if (bool2) {
              break label178;
            }
            if (localk3 != null)
            {
              v_ localv_ = new v_(paramo, paramk, localk3, null);
              localv_.a(paramo, localk1, localk2);
              a.c.w localw = localv_.a();
              if (localw.e()) {}
              for (;;)
              {
                if (!bool2)
                {
                  localv_.c(localw.d(), localv_.a(localw.d()));
                  localw.f();
                  if (!bool1)
                  {
                    if (!bool1) {
                      break;
                    }
                    if (bool2) {
                      continue;
                    }
                    localv_.a(paramo);
                  }
                }
              }
              return localv_.b;
            }
          }
        }
      }
      label178:
      return paramk;
    }
    return null;
  }
  
  protected void a(a.f.o paramo, rb paramrb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    h localh = new h(paramo);
    a.c.k localk = paramo.c(a.f.c.i.c);
    a.i.p local48 = new a.i.p()
    {
      private final h val$grouping;
      
      public boolean getBool(Object paramAnonymousObject)
      {
        boolean bool = d.R;
        a.c.e locale = (a.c.e)paramAnonymousObject;
        if ((bool) || (this.val$grouping.e(locale))) {
          if (bool) {}
        }
        return this.val$grouping.f(locale);
      }
    };
    paramo.a(a.f.c.i.c, local48);
    label137:
    label139:
    label142:
    label194:
    label198:
    try
    {
      a.c.w localw = paramo.v();
      do
      {
        do
        {
          if (!localw.e()) {
            break label142;
          }
          a.c.e locale = localw.d();
          paramrb.g(locale);
          a.c.d locald = locale.h();
          do
          {
            if (locald == null) {
              break;
            }
            paramrb.d(locald);
            locald = locald.i();
            if (bool2) {
              break label139;
            }
            if (bool1) {
              break label137;
            }
          } while (!bool1);
        } while (bool2);
        localw.f();
      } while (!bool1);
    }
    finally
    {
      if (!bool2)
      {
        if (localk != null) {
          paramo.a(a.f.c.i.c, localk);
        }
      }
      else
      {
        if (bool2) {
          break label198;
        }
        if (!bool1) {
          break label194;
        }
      }
      paramo.j(a.f.c.i.c);
      localh.e();
    }
  }
  
  protected tc G()
  {
    q localq = new q();
    localq.a(this.D);
    return localq;
  }
  
  protected ac a(bc parambc)
  {
    return new g_(parambc);
  }
  
  cb H()
  {
    return new cb();
  }
  
  k a(bc parambc, rb paramrb)
  {
    k localk = new k(parambc, paramrb);
    localk.a(this.D);
    return localk;
  }
  
  hb a(a.f.o paramo, bc parambc, a.c.k paramk)
  {
    hb localhb = new hb(paramo, parambc, paramk);
    Object localObject = a("GroupingSupport.minimumGroupDistance");
    if ((localObject instanceof Number)) {
      localhb.a(((Number)localObject).doubleValue());
    }
    return localhb;
  }
  
  qc I()
  {
    return new qc();
  }
  
  sb a(a.f.yb paramyb)
  {
    return new sb(paramyb);
  }
  
  ic J()
  {
    return new ic();
  }
  
  m k(a.f.o paramo)
  {
    if (paramo.c(sc.c) == null) {
      return null;
    }
    boolean bool = Boolean.TRUE.equals(a("HierarchicLayouter.keepInterGroupConstraints"));
    return new nb(bool);
  }
  
  ed a(k paramk, hb paramhb)
  {
    w localw = new w(paramk, paramhb);
    localw.a(this.D);
    return localw;
  }
  
  protected zb K()
  {
    return new o(new a.f.d.ob());
  }
  
  cd L()
  {
    return new cd();
  }
  
  jb M()
  {
    return new jb();
  }
  
  protected ab O()
  {
    return new u_();
  }
  
  private static void a(mc parammc, a.f.o paramo, ac paramac, bc parambc, rb paramrb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    if ((bool2) || (parammc != null)) {
      parammc.a(paramo, paramac, parambc, paramrb);
    }
    a.f.cd localcd1 = a.f.cd.a((byte)2, true);
    a.f.cd localcd2 = a.f.cd.a((byte)1, true);
    a.f.cd localcd3 = a.f.cd.a((byte)2, false);
    a.f.cd localcd4 = a.f.cd.a((byte)1, false);
    a.c.m localm = paramo.w();
    label340:
    label347:
    do
    {
      if (!localm.e()) {
        break;
      }
      a.c.d locald = localm.a();
      y localy = parambc.a(locald);
      ec localec1 = parambc.a(locald.e());
      ec localec2 = parambc.a(locald.f());
      int i = localec2.h() - localec1.h();
      if (!bool2)
      {
        if (i != 0)
        {
          z localz = localy.m();
          if (!bool2) {
            if (localec1.d() == 0)
            {
              if (bool2) {
                break label347;
              }
              if ((!a(locald.e())) && ((localy.e() == null) || (parammc == null))) {
                if ((bool2) || (localz != null))
                {
                  if (bool2) {
                    break label347;
                  }
                  if (localz.f()) {}
                }
                else
                {
                  if (!bool2) {
                    if (localy.d() != null)
                    {
                      if (bool2) {
                        break label347;
                      }
                      if (!localy.d().g()) {
                        break label340;
                      }
                    }
                  }
                  if (((bool2) || (localy.d() != null)) && (localy.d().a()))
                  {
                    paramrb.a(locald, true, i > 0 ? localcd1 : localcd2);
                    if (bool2) {
                      break label347;
                    }
                    if (!bool1) {}
                  }
                  else
                  {
                    paramrb.a(locald, true, i > 0 ? localcd3 : localcd4);
                  }
                }
              }
            }
          }
          if (bool2) {
            continue;
          }
          if ((localec2.d() == 0) && ((localy.g() == null) || (parammc == null)))
          {
            if (bool2) {
              continue;
            }
            if (!a(locald.f())) {
              if ((bool2) || (localz != null))
              {
                if (bool2) {
                  continue;
                }
                if (localz.g()) {}
              }
              else
              {
                if (!bool2) {
                  if (localy.f() != null)
                  {
                    if (bool2) {
                      continue;
                    }
                    if (!localy.f().g()) {
                      break label525;
                    }
                  }
                }
                if (((bool2) || (localy.f() != null)) && (localy.f().a()))
                {
                  paramrb.a(locald, false, i > 0 ? localcd2 : localcd1);
                  if (bool2) {
                    continue;
                  }
                  if (!bool1) {}
                }
                else
                {
                  paramrb.a(locald, false, i > 0 ? localcd4 : localcd3);
                }
              }
            }
          }
        }
        localm.f();
      }
    } while (!bool1);
    label525:
  }
  
  private static boolean a(a.c.e parame)
  {
    a.c.k localk = parame.g().c(bd.a);
    return (R) || ((localk != null) && (localk.get(parame) != null));
  }
  
  private void b(mc parammc, a.f.o paramo, ac paramac, bc parambc, rb paramrb)
  {
    if ((R) || (parammc != null)) {
      parammc.b(paramo, paramac, parambc, paramrb);
    }
  }
  
  private i_ a(a.f.o paramo, ac paramac, bc parambc, a.c.k paramk, hb paramhb)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    i_ locali_ = new i_();
    x localx = paramo.B();
    int i = 0;
    Object localObject1;
    bb localbb;
    a.c.v localv;
    a.c.e locale;
    Object localObject2;
    label169:
    do
    {
      do
      {
        if (i >= paramac.a()) {
          break;
        }
        localObject1 = paramac.a(i);
        localbb = ((vb)localObject1).c();
        if (bool1) {
          break label712;
        }
        localv = localbb.f();
        do
        {
          if (localv == null) {
            break label169;
          }
          locale = (a.c.e)localv.c();
          localObject2 = parambc.a(locale);
          if (bool1) {
            break;
          }
          if (((ec)localObject2).d() == 0) {
            if ((bool2) || (((ec)localObject2).l().a() != 0))
            {
              if (bool2) {
                continue;
              }
              if (((ec)localObject2).l().a() != 1) {}
            }
            else
            {
              localx.a(locale, true);
            }
          }
          localv = localv.a();
        } while (!bool1);
        i++;
      } while (bool2);
    } while (!bool1);
    label295:
    int j;
    if (!bool2)
    {
      i = 0;
      do
      {
        do
        {
          if (i >= paramac.a()) {
            break;
          }
          localObject1 = paramac.a(i);
          localbb = ((vb)localObject1).c();
          if (bool1) {
            break label712;
          }
          localv = localbb.f();
          do
          {
            if (localv == null) {
              break label295;
            }
            locale = (a.c.e)localv.c();
            if (bool1) {
              break;
            }
            if (b(locale, parambc.a(locale), parambc, paramk, localx)) {
              localx.a(locale, true);
            }
            localv = localv.a();
          } while (!bool1);
          i++;
        } while (bool2);
      } while (!bool1);
      if (!bool2)
      {
        i = 0;
        label421:
        do
        {
          do
          {
            if (i >= paramac.a()) {
              break;
            }
            localObject1 = paramac.a(i);
            localbb = ((vb)localObject1).c();
            if (bool1) {
              break label712;
            }
            localv = localbb.f();
            do
            {
              if (localv == null) {
                break label421;
              }
              locale = (a.c.e)localv.c();
              if (bool1) {
                break;
              }
              if (a(locale, parambc.a(locale), parambc, paramk, localx)) {
                localx.a(locale, true);
              }
              localv = localv.a();
            } while (!bool1);
            i++;
          } while (bool2);
        } while (!bool1);
        if (!bool2)
        {
          i = 0;
          label547:
          do
          {
            do
            {
              if (i >= paramac.a()) {
                break;
              }
              localObject1 = paramac.a(i);
              localbb = ((vb)localObject1).c();
              if (bool1) {
                break label712;
              }
              localv = localbb.f();
              do
              {
                if (localv == null) {
                  break label547;
                }
                locale = (a.c.e)localv.c();
                if (bool1) {
                  break;
                }
                if (c(locale, parambc.a(locale), parambc, paramk, localx)) {
                  localx.a(locale, true);
                }
                localv = localv.a();
              } while (!bool1);
              i++;
            } while (bool2);
          } while (!bool1);
          paramhb.c(paramac, localx);
          if (bool2) {
            break label918;
          }
          a.c.m localm1 = paramo.w();
          do
          {
            if (!localm1.e()) {
              break;
            }
            localObject1 = localm1.a();
            if (bool1) {
              break label675;
            }
            if (!localx.getBool(((a.c.d)localObject1).e()))
            {
              if (bool2) {
                continue;
              }
              if (!localx.getBool(((a.c.d)localObject1).f())) {}
            }
            else
            {
              paramo.f((a.c.d)localObject1);
              locali_.d.add(localObject1);
            }
            localm1.f();
          } while (!bool1);
          if (bool2) {
            break label920;
          }
          label675:
          j = 0;
        }
      }
    }
    label712:
    label876:
    label888:
    label889:
    do
    {
      do
      {
        if (j >= paramac.a()) {
          break;
        }
        localObject1 = paramac.a(j);
        localbb = ((vb)localObject1).c();
        localv = localbb.f();
        do
        {
          if (localv == null) {
            break label901;
          }
          do
          {
            locale = (a.c.e)localv.c();
            if (bool1) {
              break;
            }
            if (!localx.getBool(locale)) {
              break label889;
            }
            localObject2 = locale.i();
            do
            {
              do
              {
                if (localObject2 == null) {
                  break;
                }
                paramo.f((a.c.d)localObject2);
                locali_.d.add(localObject2);
                if (bool2) {
                  break label813;
                }
                localObject2 = ((a.c.d)localObject2).j();
                if (bool1) {
                  break label811;
                }
              } while (!bool1);
            } while (bool2);
            localObject2 = locale.h();
            do
            {
              if (localObject2 == null) {
                break;
              }
              paramo.f((a.c.d)localObject2);
              locali_.d.add(localObject2);
              localObject2 = ((a.c.d)localObject2).i();
              if (bool2) {
                break label888;
              }
              if (bool1) {
                break label876;
              }
            } while (!bool1);
            paramo.d(locale);
          } while (bool2);
          localbb.h(localv);
          locali_.b.add(locale);
          localv = localv.a();
        } while (!bool1);
        j++;
      } while (bool2);
    } while (!bool1);
    label811:
    label813:
    a.c.m localm2 = paramo.w();
    label901:
    label918:
    label920:
    do
    {
      if (!localm2.e()) {
        break;
      }
      localObject1 = localm2.a();
      if (bool1) {
        break label1004;
      }
      if (paramk.get(localObject1) != null)
      {
        paramo.f((a.c.d)localObject1);
        locali_.d.add(localObject1);
      }
      localm2.f();
    } while (!bool1);
    paramhb.c(paramac);
    if (!bool2) {
      paramo.a(localx);
    }
    label1004:
    return locali_;
  }
  
  private static final boolean a(a.c.e parame, ec paramec, bc parambc, a.c.k paramk, x paramx)
  {
    boolean bool4 = R;
    boolean bool3 = Q;
    boolean bool1;
    a.c.d locald1;
    boolean bool2;
    a.c.d locald2;
    if (!bool4)
    {
      if (paramec.d() == 6)
      {
        if (!bool4) {
          if (paramx.getBool(parame)) {
            return true;
          }
        }
        bool1 = false;
        locald1 = parame.i();
        label149:
        label185:
        do
        {
          if (locald1 == null) {
            break;
          }
          bool2 = paramx.getBool(locald1.e());
          if (bool3) {
            break label233;
          }
          if (!bool2)
          {
            locald2 = parambc.a(locald1).c();
            if (!bool4) {
              if (!paramx.getBool(locald2.f())) {
                if (bool4) {
                  break label149;
                }
              }
            }
            bool2 = a(locald2.e(), parambc.a(locald2.e()), parambc, paramk, paramx);
            if (bool4) {
              break label185;
            }
            if (!bool2) {
              bool2 = paramk.get(locald2) != null;
            }
          }
          if (!bool4)
          {
            if (bool2)
            {
              bool1 = true;
              if (bool4) {
                continue;
              }
              if (!bool3) {}
            }
            else
            {
              bool1 = false;
            }
          }
          else
          {
            if (bool4) {
              continue;
            }
            if (!bool3) {
              break;
            }
          }
          locald1 = locald1.j();
        } while (!bool3);
        label233:
        return bool1;
      }
      if (bool4) {}
    }
    else if (paramec.d() == 7)
    {
      if (!bool4) {
        if (paramx.getBool(parame)) {
          return true;
        }
      }
      bool1 = false;
      locald1 = parame.h();
      label373:
      do
      {
        if (locald1 == null) {
          break;
        }
        bool2 = paramx.getBool(locald1.f());
        if (bool3) {
          break label457;
        }
        if (!bool2)
        {
          locald2 = parambc.a(locald1).c();
          if (!bool4) {
            if (!paramx.getBool(locald2.e())) {
              if (bool4) {
                break label373;
              }
            }
          }
          bool2 = a(locald2.f(), parambc.a(locald2.f()), parambc, paramk, paramx);
          if (bool4) {
            break label409;
          }
          if (!bool2) {
            bool2 = paramk.get(locald2) != null;
          }
        }
        if (!bool4)
        {
          if (bool2)
          {
            bool1 = true;
            if (bool4) {
              continue;
            }
            if (!bool3) {}
          }
          else
          {
            bool1 = false;
          }
        }
        else
        {
          if (bool4) {
            continue;
          }
          if (!bool3) {
            break;
          }
        }
        locald1 = locald1.i();
      } while (!bool3);
      label409:
      label457:
      return bool1;
    }
    return false;
  }
  
  private static final boolean b(a.c.e parame, ec paramec, bc parambc, a.c.k paramk, x paramx)
  {
    boolean bool2 = R;
    label91:
    boolean bool1;
    a.c.d locald;
    y localy;
    if (!bool2)
    {
      if (paramec.d() == 8)
      {
        if (!bool2) {
          if (!paramx.getBool(paramec.f()))
          {
            if (bool2) {
              break label91;
            }
            if (!paramx.getBool(paramec.g().e())) {
              if (bool2) {
                break label91;
              }
            }
          }
        }
        bool1 = paramx.getBool(paramec.g().f());
        if (!bool2) {
          if (!bool1)
          {
            locald = paramec.g();
            bool1 = paramk.get(locald) != null;
            if (bool2) {
              break label203;
            }
            if (!bool1)
            {
              localy = parambc.a(locald);
              if (((bool2) || (localy != null)) && ((bool2) || (localy.c() != null))) {
                bool1 = paramk.get(localy.c()) != null;
              }
            }
          }
        }
        label203:
        return bool1;
      }
      if (bool2) {}
    }
    else if (paramec.d() == 9)
    {
      if (!bool2) {
        if (!paramx.getBool(paramec.f()))
        {
          if (bool2) {
            break label290;
          }
          if (!paramx.getBool(paramec.g().e())) {
            if (bool2) {
              break label290;
            }
          }
        }
      }
      label290:
      bool1 = paramx.getBool(paramec.g().f());
      if (!bool2) {
        if (!bool1)
        {
          locald = paramec.g();
          bool1 = paramk.get(locald) != null;
          if (bool2) {
            break label402;
          }
          if (!bool1)
          {
            localy = parambc.a(locald);
            if (((bool2) || (localy != null)) && ((bool2) || (localy.c() != null))) {
              bool1 = paramk.get(localy.c()) != null;
            }
          }
        }
      }
      label402:
      return bool1;
    }
    return false;
  }
  
  private static final boolean c(a.c.e parame, ec paramec, bc parambc, a.c.k paramk, x paramx)
  {
    boolean bool3 = R;
    boolean bool2 = Q;
    boolean bool1 = false;
    Object localObject1;
    if (!bool3)
    {
      Object localObject2;
      Object localObject3;
      switch (paramec.d())
      {
      case 2: 
      case 3: 
      case 4: 
      case 5: 
      case 6: 
      case 7: 
      default: 
        return false;
      case 8: 
        bool1 = paramx.getBool(paramec.f());
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        localObject1 = paramec.g();
        localObject2 = (tb_)paramk.get(localObject1);
        bool1 = localObject2 != null;
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        localObject3 = ((a.c.d)paramec.b().c()).e();
        bool1 = paramx.getBool(localObject3);
        if (bool3) {
          break label559;
        }
        if (!bool2) {
          break;
        }
      case 9: 
        bool1 = paramx.getBool(paramec.f());
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        localObject1 = paramec.g();
        localObject2 = (tb_)paramk.get(localObject1);
        bool1 = localObject2 != null;
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        localObject3 = ((a.c.d)paramec.b().c()).f();
        bool1 = paramx.getBool(localObject3);
        if (bool3) {
          break label559;
        }
        if (!bool2) {
          break;
        }
      case 10: 
        if (paramk.get(paramec.g()) != null) {
          return true;
        }
        localObject1 = paramec.b();
        localObject2 = (a.c.d)((a.c.v)localObject1).c();
        localObject3 = (tb_)paramk.get(localObject2);
        bool1 = localObject3 != null;
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        a.c.e locale = ((a.c.d)localObject2).a(parame);
        bool1 = paramx.getBool(locale);
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        localObject1 = ((a.c.v)localObject1).a();
        localObject2 = (a.c.d)((a.c.v)localObject1).c();
        localObject3 = (tb_)paramk.get(localObject2);
        bool1 = localObject3 != null;
        if (bool3) {
          break label559;
        }
        if (bool1) {
          break;
        }
        locale = ((a.c.d)localObject2).a(parame);
        bool1 = paramx.getBool(locale);
        if (bool3) {
          break label559;
        }
        if (!bool2) {
          break;
        }
      }
    }
    else
    {
      localObject1 = paramec.g();
      bool1 = paramk.get(localObject1) != null;
      if (bool3) {
        break label559;
      }
      if (!bool1)
      {
        if (!bool3) {
          if (!paramx.getBool(((a.c.d)localObject1).e())) {
            if (bool3) {
              break label551;
            }
          }
        }
        label551:
        bool1 = paramx.getBool(((a.c.d)localObject1).f());
      }
    }
    label559:
    return bool1;
  }
  
  private void a(i_ parami_, a.c.i parami, a.f.o paramo, ac paramac, bc parambc)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    int i = 0;
    Object localObject;
    do
    {
      if (i >= parami_.b.size()) {
        break;
      }
      localObject = (a.c.e)parami_.b.get(i);
      if (bool1) {
        break label114;
      }
      if (!paramo.h((a.c.e)localObject))
      {
        paramo.e((a.c.e)localObject);
        paramac.a(parambc.a((a.c.e)localObject).h()).a((a.c.e)localObject);
        parami.a(localObject, true);
      }
      i++;
    } while (!bool1);
    if (!bool2) {
      label114:
      i = 0;
    }
    do
    {
      if (i >= parami_.d.size()) {
        break;
      }
      localObject = (a.c.d)parami_.d.get(i);
      paramo.g((a.c.d)localObject);
      paramo.e(localObject).b();
      i++;
    } while (!bool1);
  }
  
  protected void b(a.f.o paramo, ac paramac)
  {
    boolean bool3 = R;
    boolean bool2 = Q;
    a.c.k localk = paramo.c(I);
    if ((bool3) || (localk != null))
    {
      boolean bool1 = localk instanceof a.c.i;
      int i = 0;
      int j = 0;
      label202:
      do
      {
        if (j >= paramac.a()) {
          break;
        }
        vb localvb = paramac.a(j);
        if (!bool3)
        {
          if ((localvb.d() != 2) && ((bool3) || (localvb.d() != 3)))
          {
            a.c.v localv = localvb.c().f();
            do
            {
              if (localv == null) {
                break label202;
              }
              a.c.e locale = (a.c.e)localv.c();
              if (bool2) {
                break;
              }
              if (bool1)
              {
                ((a.c.i)localk).a(locale, i);
                if (bool3) {
                  continue;
                }
                if (!bool2) {}
              }
              else
              {
                Object localObject = localk.get(locale);
                if (bool3) {
                  continue;
                }
                if ((localObject instanceof pb)) {
                  ((pb)localObject).a(i);
                }
              }
              localv = localv.a();
            } while (!bool2);
            if (bool3) {
              break;
            }
            i++;
          }
          j++;
        }
      } while (!bool2);
    }
  }
  
  protected void a(a.f.o paramo, ac paramac, bc parambc)
  {
    boolean bool3 = R;
    boolean bool2 = Q;
    a.c.k localk = paramo.c(J);
    if ((bool3) || (localk != null))
    {
      boolean bool1 = localk instanceof a.c.i;
      int i = 0;
      label226:
      label238:
      do
      {
        do
        {
          if (i >= paramac.a()) {
            return;
          }
          vb localvb = paramac.a(i);
          if (bool3) {
            break;
          }
          if ((localvb.d() != 2) && ((bool3) || (localvb.d() != 3)))
          {
            int j = 0;
            a.c.v localv = localvb.c().f();
            do
            {
              if (localv == null) {
                break label238;
              }
              a.c.e locale = (a.c.e)localv.c();
              ec localec = parambc.a(locale);
              if (bool2) {
                break;
              }
              if (localec.d() == 0)
              {
                if (!bool3)
                {
                  if (bool1)
                  {
                    ((a.c.i)localk).a(locale, j);
                    j++;
                  }
                }
                else
                {
                  if (bool3) {
                    continue;
                  }
                  if (!bool2) {
                    break label226;
                  }
                }
                Object localObject = localk.get(locale);
                if (bool3) {
                  continue;
                }
                if ((localObject instanceof pb))
                {
                  ((pb)localObject).a(j);
                  j++;
                }
              }
              localv = localv.a();
            } while (!bool2);
          }
          i++;
        } while (bool3);
      } while (!bool2);
    }
  }
  
  private i_ a(a.f.o paramo, a.c.k paramk1, hb paramhb, a.c.k paramk2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    i_ locali_ = new i_();
    if (paramk1 != null)
    {
      a.c.w localw = paramo.v();
      Object localObject1;
      Object localObject2;
      label165:
      do
      {
        do
        {
          if (!localw.e()) {
            break;
          }
          localObject1 = localw.d();
          if (bool1) {
            break label582;
          }
          if ((bool2) || ((paramhb == null) || ((bool2) || (!paramhb.g((a.c.e)localObject1)))))
          {
            localObject2 = (tb_)paramk1.get(localObject1);
            if (bool2) {
              continue;
            }
            if (localObject2 != null)
            {
              if (!bool2) {
                if (((tb_)localObject2).m == 0)
                {
                  locali_.a.add(localObject1);
                  if (bool2) {
                    continue;
                  }
                  if (!bool1) {
                    break label165;
                  }
                }
              }
              if (bool2) {
                continue;
              }
              if (((tb_)localObject2).m == 1) {
                locali_.b.add(localObject1);
              }
            }
          }
          localw.f();
        } while (!bool1);
      } while (bool2);
      int i = 0;
      a.c.d locald;
      label303:
      label305:
      do
      {
        do
        {
          if (i >= locali_.a.size()) {
            break;
          }
          localObject1 = (a.c.e)locali_.a.get(i);
          if (bool1) {
            break label449;
          }
          localObject2 = ((a.c.e)localObject1).l();
          do
          {
            if (!((a.c.m)localObject2).e()) {
              break;
            }
            locald = ((a.c.m)localObject2).a();
            locali_.c.add(locald);
            paramo.f(locald);
            ((a.c.m)localObject2).f();
            if (bool2) {
              break label305;
            }
            if (bool1) {
              break label303;
            }
          } while (!bool1);
          paramo.d((a.c.e)localObject1);
          if (!bool2) {
            i++;
          }
        } while (!bool1);
      } while (bool2);
      i = 0;
      if (i < locali_.b.size()) {}
      label427:
      while (bool2)
      {
        localObject1 = (a.c.e)locali_.b.get(i);
        if (bool1) {
          break label449;
        }
        localObject2 = ((a.c.e)localObject1).l();
        do
        {
          do
          {
            if (!((a.c.m)localObject2).e()) {
              break label427;
            }
            locald = ((a.c.m)localObject2).a();
            if (bool1) {
              break;
            }
            if (!paramk2.getBool(locald))
            {
              locali_.d.add(locald);
              paramo.f(locald);
            }
            ((a.c.m)localObject2).f();
          } while (!bool1);
          i++;
        } while (bool2);
        if (!bool1) {
          break;
        }
      }
      label449:
      a.c.m localm = paramo.w();
      label570:
      do
      {
        if (!localm.e()) {
          break;
        }
        localObject1 = localm.a();
        localObject2 = (tb_)paramk1.get(localObject1);
        if ((!paramk2.getBool(localObject1)) && ((bool2) || (localObject2 != null)))
        {
          if (!bool2) {
            if (((tb_)localObject2).m == 1)
            {
              locali_.d.add(localObject1);
              paramo.f((a.c.d)localObject1);
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label570;
              }
            }
          }
          locali_.c.add(localObject1);
          paramo.f((a.c.d)localObject1);
        }
        localm.f();
      } while (!bool1);
    }
    label582:
    return locali_;
  }
  
  private i_ b(a.f.o paramo, a.c.k paramk)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    i_ locali_ = new i_();
    if (paramk != null)
    {
      a.c.w localw = paramo.v();
      Object localObject1;
      Object localObject2;
      do
      {
        do
        {
          if (!localw.e()) {
            break;
          }
          localObject1 = localw.d();
          localObject2 = (tb_)paramk.get(localObject1);
          if (bool1) {
            return locali_;
          }
          if ((bool2) || (localObject2 != null))
          {
            if (bool2) {
              continue;
            }
            if (((tb_)localObject2).m == 0) {
              locali_.a.add(localObject1);
            }
          }
          localw.f();
        } while (!bool1);
      } while (bool2);
      int i = 0;
      if (i < locali_.a.size()) {}
      label235:
      label237:
      while (bool2)
      {
        localObject1 = (a.c.e)locali_.a.get(i);
        if (bool1) {
          break label249;
        }
        localObject2 = ((a.c.e)localObject1).l();
        do
        {
          if (!((a.c.m)localObject2).e()) {
            break;
          }
          a.c.d locald = ((a.c.m)localObject2).a();
          locali_.c.add(locald);
          paramo.f(locald);
          ((a.c.m)localObject2).f();
          if (bool2) {
            break label237;
          }
          if (bool1) {
            break label235;
          }
        } while (!bool1);
        paramo.d((a.c.e)localObject1);
        if (!bool2) {
          i++;
        }
        if (!bool1) {
          break;
        }
      }
      label249:
      a.c.m localm = paramo.w();
      do
      {
        if (!localm.e()) {
          break;
        }
        localObject1 = localm.a();
        localObject2 = (tb_)paramk.get(localObject1);
        if (!bool2)
        {
          if (localObject2 != null)
          {
            if (bool2) {
              continue;
            }
            if (((tb_)localObject2).m != 1)
            {
              locali_.c.add(localObject1);
              paramo.f((a.c.d)localObject1);
            }
          }
          localm.f();
        }
      } while (!bool1);
    }
    return locali_;
  }
  
  private void a(zb paramzb, a.f.o paramo, ac paramac, bc parambc, i_ parami_, a.c.i parami, x paramx)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Iterator localIterator = parami_.a.iterator();
    Object localObject;
    do
    {
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        localObject = (a.c.e)localIterator.next();
        paramo.e((a.c.e)localObject);
        parami.a(localObject, true);
      } while (!bool1);
    } while (bool2);
    int i = 0;
    label188:
    label191:
    do
    {
      do
      {
        do
        {
          if (i >= parami_.c.size()) {
            break label191;
          }
          localObject = (a.c.d)parami_.c.get(i);
          if (bool2) {
            break label280;
          }
          if (bool1) {
            break label278;
          }
          if (localObject == null) {
            break;
          }
          if (bool2) {
            break label188;
          }
          if (!paramo.h(((a.c.d)localObject).e())) {
            break;
          }
          if (bool2) {
            break label188;
          }
          if (!paramo.h(((a.c.d)localObject).f())) {
            break;
          }
          paramo.g((a.c.d)localObject);
          parami_.c.remove(i);
          if (bool2) {
            break label188;
          }
        } while (!bool1);
        i++;
      } while (!bool1);
    } while (bool2);
    if (!bool2) {
      if (parami_.a.size() > 0)
      {
        if (!bool2) {
          if ((paramzb instanceof o)) {
            ((o)paramzb).a(paramx);
          }
        }
        paramzb.a(paramo, paramac, parambc);
      }
    }
    i = 0;
    label278:
    label280:
    label348:
    do
    {
      do
      {
        if (i >= parami_.d.size()) {
          return;
        }
        localObject = (a.c.d)parami_.d.get(i);
        if (bool2) {
          break label348;
        }
        if (!paramo.h(((a.c.d)localObject).e())) {
          break;
        }
        if (bool2) {
          break label348;
        }
        if (!paramo.h(((a.c.d)localObject).f())) {
          break;
        }
        paramo.g((a.c.d)localObject);
        parami_.d.remove(i);
        if (bool2) {
          break label348;
        }
      } while (!bool1);
      i++;
    } while (!bool1);
  }
  
  private void a(zb paramzb, a.f.o paramo, ac paramac, bc parambc, i_ parami_, a.c.i parami, h paramh, a.c.e parame)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    Iterator localIterator = parami_.a.iterator();
    Object localObject;
    do
    {
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        localObject = (a.c.e)localIterator.next();
      } while (paramh.b((a.c.e)localObject) != parame);
      paramo.e((a.c.e)localObject);
      parami.a(localObject, true);
    } while ((!bool2) && (!bool2) && (!bool1));
    int i = 0;
    label205:
    label208:
    do
    {
      do
      {
        do
        {
          if (i >= parami_.c.size()) {
            break label208;
          }
          localObject = (a.c.d)parami_.c.get(i);
          if (bool2) {
            break label276;
          }
          if (bool1) {
            break label274;
          }
          if (localObject == null) {
            break;
          }
          if (bool2) {
            break label205;
          }
          if (!paramo.h(((a.c.d)localObject).e())) {
            break;
          }
          if (bool2) {
            break label205;
          }
          if (!paramo.h(((a.c.d)localObject).f())) {
            break;
          }
          paramo.g((a.c.d)localObject);
          parami_.c.remove(i);
          if (bool2) {
            break label205;
          }
        } while (!bool1);
        i++;
      } while (!bool1);
    } while (bool2);
    if (!bool2) {
      if (parami_.a.size() > 0) {
        paramzb.a(paramo, paramac, parambc);
      }
    }
    i = 0;
    label274:
    label276:
    label344:
    do
    {
      do
      {
        if (i >= parami_.d.size()) {
          return;
        }
        localObject = (a.c.d)parami_.d.get(i);
        if (bool2) {
          break label344;
        }
        if (!paramo.h(((a.c.d)localObject).e())) {
          break;
        }
        if (bool2) {
          break label344;
        }
        if (!paramo.h(((a.c.d)localObject).f())) {
          break;
        }
        paramo.g((a.c.d)localObject);
        parami_.d.remove(i);
        if (bool2) {
          break label344;
        }
      } while (!bool1);
      i++;
    } while (!bool1);
  }
  
  protected void l(a.f.o paramo)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.c.m localm = paramo.w();
    label302:
    label309:
    do
    {
      do
      {
        if (!localm.e()) {
          return;
        }
        a.c.d locald = localm.a();
        a.f.zb localzb = paramo.b(locald);
        if (localzb.a() > 0)
        {
          ArrayList localArrayList = new ArrayList(localzb.a());
          a.d.y localy = paramo.n(locald);
          a.c.y localy1 = localy.a();
          do
          {
            Object localObject = (a.d.w)localy1.j();
            localy1.f();
            double d1 = ((a.d.w)localObject).a();
            double d2 = ((a.d.w)localObject).b();
            if ((bool2) || (localy1.e()))
            {
              localObject = (a.d.w)localy1.j();
              double d3 = ((a.d.w)localObject).a();
              double d4 = ((a.d.w)localObject).b();
              localy1.f();
              do
              {
                if (!localy1.e()) {
                  break;
                }
                a.d.w localw1 = (a.d.w)localy1.j();
                double d6 = localw1.a();
                double d5 = localw1.b();
                double d7 = (d1 - d6) * (d4 - d5) / (d2 - d5) + d6;
                if (bool2) {
                  break label309;
                }
                if (bool1) {
                  break label302;
                }
                if (Math.abs(d7 - d3) > 0.5D)
                {
                  localArrayList.add(localObject);
                  d1 = d3;
                  d2 = d4;
                }
                localObject = localw1;
                d3 = d6;
                d4 = d5;
                localy1.f();
              } while (!bool1);
            }
          } while (bool2);
          if (localArrayList.size() < localzb.a())
          {
            localzb.b();
            int i = 0;
            do
            {
              if (i >= localArrayList.size()) {
                break;
              }
              a.d.w localw2 = (a.d.w)localArrayList.get(i);
              localzb.a(localw2.a, localw2.b);
              i++;
              if (bool2) {
                break label397;
              }
              if (bool1) {
                break label395;
              }
            } while (!bool1);
          }
        }
      } while (bool2);
      localm.f();
    } while (!bool1);
    label395:
    label397:
    return;
  }
  
  private boolean P()
  {
    return Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.RecursiveGroupLayerer.enabled"));
  }
  
  private boolean Q()
  {
    return Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.RecursiveGroupLayerer.interEdgePromotionEnabled"));
  }
  
  private boolean R()
  {
    return Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.considerGroupNodeEdges"));
  }
  
  private boolean S()
  {
    return Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.RecursiveGroupLayerer.compactionEnabled"));
  }
  
  private boolean T()
  {
    return Boolean.TRUE.equals(a("y.layout.hierarchic.incremental.HierarchicLayouter.useAspectRatioLayerer"));
  }
  
  private byte U()
  {
    return ((Number)a("y.layout.hierarchic.incremental.HierarchicLayouter.RecursiveGroupLayerer.alignment")).byteValue();
  }
  
  public ob V()
  {
    if (!R) {
      if (this.w == null) {
        this.w = new ob()
        {
          public Object a(Object paramAnonymousObject)
          {
            return d.tb_.h;
          }
          
          public Object b(Object paramAnonymousObject)
          {
            return d.tb_.i;
          }
          
          public Object a(a.c.d paramAnonymousd)
          {
            return d.tb_.h;
          }
          
          public Object b(a.c.d paramAnonymousd)
          {
            return d.tb_.i;
          }
          
          public Object c(Object paramAnonymousObject)
          {
            return d.tb_.j;
          }
          
          public Object d(Object paramAnonymousObject)
          {
            return d.tb_.k;
          }
          
          public Object e(Object paramAnonymousObject)
          {
            return d.tb_.l;
          }
        };
      }
    }
    return this.w;
  }
  
  public sc a(a.c.q paramq)
  {
    return new mb(paramq);
  }
  
  public xb b(a.c.q paramq)
  {
    return new nc(paramq);
  }
  
  private a.i.y a(a.f.o paramo, kc paramkc, x paramx1, x paramx2)
  {
    boolean bool2 = R;
    boolean bool1 = Q;
    a.i.y localy = new a.i.y(paramo);
    if ((paramkc != null) && (h.b(paramo)))
    {
      h localh = new h(paramo);
      a.c.k localk = paramo.c(kc.b);
      label394:
      if (localk != null)
      {
        x localx = db.a();
        a.c.w localw1 = paramo.v();
        a.c.e locale1;
        label267:
        label272:
        label355:
        label357:
        do
        {
          do
          {
            if (!localw1.e()) {
              break;
            }
            locale1 = localw1.d();
            if (bool1) {
              break label378;
            }
            if (localh.e(locale1))
            {
              Object localObject = null;
              bb localbb = localh.d(locale1);
              a.c.w localw2 = localbb.l();
              a.c.e locale2;
              do
              {
                if (!localw2.e()) {
                  break;
                }
                locale2 = localw2.d();
                if (bool1) {
                  break label272;
                }
                if (localx.getBool(locale2))
                {
                  if (bool2) {
                    break label267;
                  }
                  localx.a(locale1, true);
                  if (!bool1) {
                    break;
                  }
                }
                jc localjc = (jc)localk.get(locale2);
                if (!bool2)
                {
                  if (localjc != null)
                  {
                    if (!bool2) {
                      if (localObject == null) {
                        localObject = localjc;
                      }
                    }
                    if (localObject.c() != localjc.c())
                    {
                      if (bool2) {
                        break label267;
                      }
                      localx.a(locale1, true);
                      if (!bool1) {
                        break;
                      }
                    }
                  }
                  localw2.f();
                }
              } while (!bool1);
              if (!bool2)
              {
                if (localx.getBool(locale1))
                {
                  localw2 = localbb.l();
                  do
                  {
                    if (!localw2.e()) {
                      break;
                    }
                    locale2 = localw2.d();
                    paramx1.a(locale2, true);
                    localw2.f();
                    if (bool2) {
                      break label357;
                    }
                    if (bool1) {
                      break label355;
                    }
                  } while (!bool1);
                }
                if (bool2) {
                  break label394;
                }
              }
              paramx2.a(locale1, localObject);
            }
            localw1.f();
          } while (!bool1);
        } while (bool2);
        localw1 = paramo.v();
        label378:
        do
        {
          if (!localw1.e()) {
            break;
          }
          locale1 = localw1.d();
          if (!bool2)
          {
            if (localx.getBool(locale1)) {
              localy.a(locale1);
            }
            localw1.f();
          }
        } while (!bool1);
      }
    }
    return localy;
  }
  
  private static final class ac_
    extends a.i.p
  {
    private a.c.k c;
    
    private ac_(a.c.k paramk)
    {
      this.c = paramk;
    }
    
    public Object get(Object paramObject)
    {
      Object localObject = this.c.get(paramObject);
      if ((d.R) || ((localObject instanceof d.tb_))) {
        return localObject;
      }
      return null;
    }
    
    ac_(a.c.k paramk, d.46 param46)
    {
      this(paramk);
    }
  }
  
  private static final class v_
  {
    private final a.c.k a;
    private final x b;
    private final a.c.k c;
    private final bb d;
    private final x f;
    
    private v_(a.f.o paramo, a.c.k paramk1, a.c.k paramk2)
    {
      this.a = paramk1;
      this.b = db.a();
      this.c = paramk2;
      this.d = new bb();
      this.f = paramo.B();
    }
    
    vc a(a.c.e parame)
    {
      return (vc)this.a.get(parame);
    }
    
    void a(a.c.e parame, vc paramvc)
    {
      this.b.a(parame, paramvc);
    }
    
    a.c.w a()
    {
      return this.d.l();
    }
    
    a.c.w c(a.c.e parame)
    {
      return ((bb)this.f.get(parame)).l();
    }
    
    boolean d(a.c.e parame)
    {
      return this.c.getBool(parame);
    }
    
    void a(a.f.o paramo, a.c.k paramk1, a.c.k paramk2)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      HashMap localHashMap = new HashMap();
      a.c.w localw = paramo.v();
      do
      {
        do
        {
          if (!localw.e()) {
            break;
          }
          localHashMap.put(paramk1.get(localw.d()), localw.d());
          localw.f();
          if (bool2) {
            break label103;
          }
          if (bool1) {
            break label96;
          }
        } while (!bool1);
      } while (bool2);
      localw = paramo.v();
      label96:
      label103:
      do
      {
        if (!localw.e()) {
          break;
        }
        Object localObject = paramk2.get(localw.d());
        a.c.e locale = (a.c.e)localHashMap.get(localObject);
        if ((bool2) || (locale != null))
        {
          bb localbb = (bb)this.f.get(locale);
          if (!bool2) {
            if (localbb == null)
            {
              localbb = new bb();
              this.f.a(locale, localbb);
            }
          }
          localbb.add(localw.d());
          if (bool2) {
            break label266;
          }
          if (!bool1) {}
        }
        else
        {
          if (bool2) {
            break label266;
          }
          if (d(localw.d())) {
            this.d.add(localw.d());
          }
        }
        if (!bool2) {
          if (!d(localw.d()))
          {
            this.b.a(localw.d(), this.a.get(localw.d()));
            if (bool2) {
              continue;
            }
          }
        }
        if ((bool1) && ((bool2) || (this.f.get(localw.d()) == null))) {
          this.f.a(localw.d(), new bb());
        }
        localw.f();
      } while (!bool1);
      label266:
    }
    
    void a(a.f.o paramo)
    {
      paramo.a(this.f);
    }
    
    void c(a.c.e parame, vc paramvc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.w localw = c(parame);
      if (!bool2) {
        if (localw.k() == 0) {
          a(parame, paramvc);
        }
      }
      label124:
      do
      {
        if ((!bool2) && ((!bool1) || (!localw.e()))) {
          break;
        }
        a.c.e locale = localw.d();
        vc localvc = a(locale);
        if ((bool2) || (localvc == null)) {
          localvc = paramvc;
        }
        if (!bool2) {
          if (d(locale))
          {
            c(locale, localvc);
            if (bool2) {
              continue;
            }
            if (!bool1) {
              break label124;
            }
          }
        }
        a(locale, localvc);
        localw.f();
      } while (!bool1);
    }
    
    v_(a.f.o paramo, a.c.k paramk1, a.c.k paramk2, d.46 param46)
    {
      this(paramo, paramk1, paramk2);
    }
  }
  
  private static class w_
  {
    private a.c.k a;
    a.c.k c;
    
    private w_() {}
    
    public void a(a.f.o paramo, ac paramac, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.k localk1 = paramo.c(d.N);
      if (!bool2)
      {
        if (localk1 == null) {
          return;
        }
        this.c = new d.50(this);
      }
      hb localhb = (hb)localk1.get(paramo);
      localhb.c();
      if (!bool2) {
        if (localhb.o())
        {
          if (bool2) {
            break label102;
          }
          if (!h.c(paramo)) {
            break label91;
          }
        }
      }
      localhb.b();
      return;
      label91:
      this.a = paramo.c("y.layout.hierarchic.incremental.LayerCompactor.KEEP_LAYERS_DPKEY");
      label102:
      x localx1 = paramo.B();
      x localx2 = paramo.B();
      x localx3 = paramo.B();
      a.c.n localn1 = paramo.C();
      a.c.n localn2 = paramo.C();
      bb[] arrayOfbb = new bb[paramac.a()];
      int i = 0;
      label287:
      label292:
      label347:
      label349:
      label352:
      label360:
      label362:
      do
      {
        if (i >= paramac.a()) {
          break;
        }
        localObject1 = paramac.a(i).c();
        arrayOfbb[i] = localObject1;
        localObject2 = ((bb)localObject1).l();
        do
        {
          do
          {
            if (!((a.c.w)localObject2).e()) {
              break label352;
            }
            localObject3 = ((a.c.w)localObject2).d();
            localx3.a(localObject3, ((a.c.e)localObject3).f());
            int j = 0;
            if (bool2) {
              break label362;
            }
            if (bool1) {
              break label360;
            }
            localObject4 = ((a.c.e)localObject3).h();
            do
            {
              do
              {
                if (localObject4 == null) {
                  break;
                }
                localn1.a(localObject4, j);
                j++;
                if (bool2) {
                  break label292;
                }
                localObject4 = ((a.c.d)localObject4).i();
                if (bool1) {
                  break label287;
                }
              } while (!bool1);
            } while (bool2);
            j = 0;
            localObject4 = ((a.c.e)localObject3).i();
            do
            {
              if (localObject4 == null) {
                break;
              }
              localn2.a(localObject4, j);
              j++;
              localObject4 = ((a.c.d)localObject4).j();
              if (bool2) {
                break label349;
              }
              if (bool1) {
                break label347;
              }
            } while (!bool1);
          } while (bool2);
          ((a.c.w)localObject2).f();
        } while (!bool1);
        if (!bool2) {
          i++;
        }
      } while (!bool1);
      a.f.d.s locals = new a.f.d.s();
      Object localObject1 = a.f.d.s.b(paramo);
      Object localObject2 = new bb();
      Object localObject3 = paramo.B();
      a.c.k localk2 = paramo.c(a.f.c.i.a);
      Object localObject4 = new d.51(this, localk2);
      paramo.a(a.f.c.i.a, (a.c.k)localObject4);
      a(paramo, (s.c_)localObject1, parambc, null, localx1, localx2, (bb)localObject2, (x)localObject3);
      a(paramo, (s.c_)localObject1, parambc);
      a(paramo, localx1, localx2, parambc, (s.c_)localObject1, (x)localObject3);
      a.c.e[] arrayOfe = a(paramo, localx1, localx2, (s.c_)localObject1);
      a(paramo, localx1, localx2, (s.c_)localObject1, parambc, paramac.a());
      paramo.a(a.f.c.i.a, localk2);
      localhb.b();
      x localx4 = paramo.B();
      a.c.ab localab = new a.c.ab();
      locals.a(true);
      a.c.k localk3 = paramo.c(rc.a);
      paramo.a(rc.a, this.c);
      try
      {
        k = locals.a(paramo, localx4, localab);
      }
      finally
      {
        if (!bool2)
        {
          paramo.j(rc.a);
          if (localk3 == null) {}
        }
        else
        {
          paramo.a(rc.a, localk3);
        }
      }
      Object localObject6 = localab.l();
      Object localObject8;
      do
      {
        if (!((a.c.m)localObject6).e()) {
          break;
        }
        localObject8 = ((a.c.m)localObject6).a();
        paramo.e((a.c.d)localObject8);
        ((a.c.m)localObject6).f();
        if ((!bool2) && (bool1)) {
          break label762;
        }
      } while (!bool1);
      if (!bool2)
      {
        localObject6 = ((bb)localObject2).l();
        do
        {
          if (!((a.c.w)localObject6).e()) {
            break;
          }
          localObject8 = ((a.c.w)localObject6).d();
          paramo.a((a.c.e)localObject8);
          ((a.c.w)localObject6).f();
          if ((!bool2) && (bool1)) {
            break label762;
          }
        } while (!bool1);
        if ((!bool2) && (arrayOfe != null))
        {
          int m = 0;
          do
          {
            if (m >= arrayOfe.length) {
              break;
            }
            if (bool1) {
              break label763;
            }
            paramo.a(arrayOfe[m]);
            m++;
          } while (!bool1);
        }
      }
      label762:
      label763:
      x localx5 = paramo.B();
      int k = new a.f.d.ab().a(paramo, localx4, localx5);
      int n = paramac.a();
      int i1 = 0;
      do
      {
        do
        {
          if (i1 >= n) {
            break;
          }
          paramac.b(0);
          i1++;
          if (bool2) {
            break label838;
          }
          if (bool1) {
            break label836;
          }
        } while (!bool1);
      } while (bool2);
      i1 = 0;
      label836:
      label838:
      do
      {
        do
        {
          if (i1 >= k) {
            break;
          }
          paramac.a((byte)0, 0);
          i1++;
          if (bool2) {
            break label880;
          }
          if (bool1) {
            break label878;
          }
        } while (!bool1);
      } while (bool2);
      i1 = 0;
      label878:
      label880:
      Object localObject9;
      label984:
      label986:
      do
      {
        if (i1 >= arrayOfbb.length) {
          break;
        }
        localObject9 = arrayOfbb[i1];
        if (bool1) {
          break label1032;
        }
        a.c.w localw2 = ((bb)localObject9).l();
        do
        {
          if (!localw2.e()) {
            break;
          }
          a.c.e locale = localw2.d();
          int i2 = localx5.getInt(locale);
          vb localvb = paramac.a(i2);
          localvb.a(locale);
          localw2.f();
          if (bool2) {
            break label986;
          }
          if (bool1) {
            break label984;
          }
        } while (!bool1);
        if (!bool2) {
          i1++;
        }
      } while (!bool1);
      ((s.c_)localObject1).b();
      paramo.a(localx4);
      paramo.a(localx5);
      paramo.a((x)localObject3);
      paramo.b(new d.5(this, localx3));
      label1032:
      a.c.w localw1 = paramo.v();
      do
      {
        if (!localw1.e()) {
          break;
        }
        localObject9 = localw1.d();
        ((a.c.e)localObject9).b(new d.0(this, localn1));
        ((a.c.e)localObject9).a(new d.1(this, localn2));
        localw1.f();
        if ((!bool2) && (bool1)) {
          return;
        }
      } while (!bool1);
      paramo.a(localx3);
      paramo.a(localn1);
      paramo.a(localn2);
      paramo.a(localx2);
      if (!bool2) {
        paramo.a(localx1);
      }
    }
    
    protected void a(a.f.o paramo, x paramx1, x paramx2, bc parambc, s.c_ paramc_, x paramx3)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      h localh = new h(paramo);
      a.c.n localn = paramo.C();
      a.c.w localw = paramo.v();
      label294:
      label302:
      label495:
      label497:
      do
      {
        do
        {
          if (!localw.e()) {
            break label821;
          }
          a.c.e locale1 = localw.d();
          if (bool2) {
            return;
          }
          if (bool1) {
            break label834;
          }
          if (bool2) {
            break;
          }
          if (localh.e(locale1))
          {
            a.c.e locale2 = (a.c.e)paramx1.get(locale1);
            a.c.e locale3 = (a.c.e)paramx2.get(locale1);
            if (bool2) {
              continue;
            }
            if ((locale2 != null) && (locale3 != null))
            {
              int i = paramx3.getInt(locale2);
              int j = paramx3.getInt(locale3);
              a.c.ab localab = new a.c.ab(locale1.l());
              a.c.m localm = localab.l();
              do
              {
                if (!localm.e()) {
                  break label804;
                }
                a.c.d locald = localm.a();
                if (bool1) {
                  break;
                }
                if (!localn.getBool(locald))
                {
                  a.c.e locale4 = locald.a(locale1);
                  a.c.e locale5 = localh.b(locale1, locale4);
                  if (!bool2)
                  {
                    if ((locale5 != locale1) && (locale5 != locale4))
                    {
                      if ((!bool2) && (!a(localh.b(locale1), paramo, localh))) {
                        break label302;
                      }
                      if (bool2) {
                        break label294;
                      }
                      if (!a(localh.b(locale4), paramo, localh)) {
                        break label302;
                      }
                    }
                    localn.a(locald, true);
                  }
                  if (bool2) {
                    continue;
                  }
                  if (bool1)
                  {
                    Object localObject1 = locale4;
                    Object localObject2 = locale4;
                    if (!bool2) {
                      if (localh.e(locale4))
                      {
                        a.c.e locale6 = (a.c.e)paramx1.get(locale4);
                        if ((bool2) || (locale6 != null))
                        {
                          localObject1 = locale6;
                          k = paramx3.getInt(localObject1);
                          if (bool2) {
                            break label402;
                          }
                          if (!bool1) {}
                        }
                        else
                        {
                          k = parambc.a(locale4).h();
                        }
                        locale6 = (a.c.e)paramx2.get(locale4);
                        if ((bool2) || (locale6 != null))
                        {
                          localObject2 = locale6;
                          m = paramx3.getInt(localObject2);
                          if (bool2) {
                            break label497;
                          }
                          if (!bool1) {
                            break label495;
                          }
                        }
                        m = parambc.a(locale4).h();
                        if (bool2) {
                          break label497;
                        }
                        if (!bool1) {
                          break label495;
                        }
                      }
                    }
                    int k = parambc.a((a.c.e)localObject1).h();
                    int m = parambc.a((a.c.e)localObject2).h();
                    if (!bool2) {
                      if (j < k)
                      {
                        paramc_.a(this.c.get(locale3), this.c.get(localObject1), 1);
                        if ((!bool2) && (!bool1)) {
                          break label782;
                        }
                      }
                    }
                    if (!bool2) {
                      if (m < i)
                      {
                        paramc_.a(this.c.get(localObject2), this.c.get(locale2), 1);
                        if ((!bool2) && (!bool1)) {
                          break label782;
                        }
                      }
                    }
                    if (!bool2) {
                      if (i < k)
                      {
                        paramc_.a(this.c.get(locale2), this.c.get(localObject1), 0);
                        if (bool2) {
                          break label695;
                        }
                        if (!bool1) {
                          break label693;
                        }
                      }
                    }
                    if (!bool2) {
                      if (i > k) {
                        paramc_.b(this.c.get(locale2), this.c.get(localObject1), 0);
                      }
                    }
                    if (!bool2) {
                      if (j < m) {
                        paramc_.a(this.c.get(locale3), this.c.get(localObject2), 0);
                      }
                    }
                    if (((bool2) || (bool1)) && (j > m)) {
                      paramc_.b(this.c.get(locale3), this.c.get(localObject2), 0);
                    }
                    localn.a(locald, true);
                  }
                }
                localm.f();
              } while (!bool1);
            }
          }
          localw.f();
        } while (bool2);
      } while (!bool1);
      label402:
      label693:
      label695:
      paramo.a(localn);
      label782:
      label804:
      label821:
      if (!bool2) {
        label834:
        localh.e();
      }
    }
    
    protected void a(a.f.o paramo, s.c_ paramc_, bc parambc, a.c.e parame, x paramx1, x paramx2, bb parambb, x paramx3)
    {
      boolean bool = d.R;
      h localh = new h(paramo);
      if (!bool) {
        if (a(parame, paramo, localh))
        {
          a(paramo, paramc_, localh, parambc, parame, paramx1, paramx2, parambb, paramx3);
          if (bool) {
            return;
          }
          if (!d.Q) {
            break label81;
          }
        }
      }
      a(localh, parame, paramo, paramc_, parambc, paramx1, paramx2, parambb, paramx3);
      label81:
      localh.e();
    }
    
    private void a(h paramh, a.c.e parame, a.f.o paramo, s.c_ paramc_, bc parambc, x paramx1, x paramx2, bb parambb, x paramx3)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      Object localObject = paramh.c(parame).l();
      if (((a.c.w)localObject).e()) {}
      a.c.e locale1;
      while (bool2)
      {
        locale1 = ((a.c.w)localObject).d();
        if ((!bool2) && (bool1)) {
          return;
        }
        if (!bool2)
        {
          if (paramh.e(locale1)) {
            a(paramo, paramc_, parambc, locale1, paramx1, paramx2, parambb, paramx3);
          }
          ((a.c.w)localObject).f();
        }
        if (!bool1) {
          break;
        }
      }
      if ((bool2) || (parame != null))
      {
        localObject = paramo.i();
        paramo.b((a.c.e)localObject, 0.0D, 0.0D);
        locale1 = paramo.i();
        paramo.b(locale1, 0.0D, 0.0D);
        paramx1.a(parame, localObject);
        paramx2.a(parame, locale1);
        parambb.add(localObject);
        parambb.add(locale1);
        int i = 2147483647;
        int j = 0;
        a.c.w localw = paramh.c(parame).l();
        label464:
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale2 = localw.d();
          if (!bool2)
          {
            if (bool1) {
              break label530;
            }
            if (bool2) {}
          }
          else if (!paramh.e(locale2))
          {
            paramc_.a(this.c.get(localObject), this.c.get(locale2), 0);
            paramc_.b(this.c.get(locale1), this.c.get(locale2), 0);
            i = Math.min(i, parambc.a(locale2).h());
            j = Math.max(j, parambc.a(locale2).h());
            if (bool2) {
              continue;
            }
            if (!bool1) {
              break label464;
            }
          }
          a.c.e locale3 = (a.c.e)paramx1.get(locale2);
          paramc_.a(this.c.get(localObject), this.c.get(locale3), 0);
          a.c.e locale4 = (a.c.e)paramx2.get(locale2);
          paramc_.b(this.c.get(locale1), this.c.get(locale4), 0);
          i = Math.min(i, paramx3.getInt(locale3));
          j = Math.max(j, paramx3.getInt(locale4));
          localw.f();
        } while (!bool1);
        paramc_.a(this.c.get(localObject), this.c.get(locale1), 0, paramo.l() * 1000);
        if (!bool2) {
          paramx3.a(localObject, i);
        }
        label530:
        paramx3.a(locale1, j);
      }
    }
    
    private void a(a.f.o paramo, s.c_ paramc_, h paramh, bc parambc, a.c.e parame, x paramx1, x paramx2, bb parambb, x paramx3)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a(paramo, parame, paramh, parambc, paramx1, paramx2, paramx3);
      bb localbb = paramh.d(parame);
      HashMap localHashMap = new HashMap();
      Object localObject1 = localbb.l();
      Object localObject2;
      a.c.e locale;
      label176:
      do
      {
        if (!((a.c.w)localObject1).e()) {
          break;
        }
        localObject2 = ((a.c.w)localObject1).d();
        if (bool1) {
          break label198;
        }
        if (!paramh.e((a.c.e)localObject2))
        {
          Integer localInteger = new Integer(parambc.a((a.c.e)localObject2).h());
          locale = (a.c.e)localHashMap.get(localInteger);
          if (!bool2) {
            if (locale != null)
            {
              paramc_.c(this.c.get(locale), this.c.get(localObject2));
              if (bool2) {
                continue;
              }
              if (!bool1) {
                break label176;
              }
            }
          }
          localHashMap.put(localInteger, localObject2);
        }
        ((a.c.w)localObject1).f();
      } while (!bool1);
      if ((bool2) || (localHashMap.size() > 0))
      {
        label198:
        localObject1 = localHashMap.values();
        localObject2 = (a.c.e[])((Collection)localObject1).toArray(new a.c.e[((Collection)localObject1).size()]);
        a.i.l.a((Object[])localObject2, new d.2(this, parambc));
        if ((bool2) || (localObject2.length > 1))
        {
          int i = 1;
          do
          {
            if (i >= localObject2.length) {
              break;
            }
            locale = localObject2[i];
            paramc_.a(this.c.get(localObject2[(i - 1)]), this.c.get(locale), 1, Math.min(1000 * paramo.l(), 2147483646));
            i++;
          } while (!bool1);
        }
      }
    }
    
    private void a(a.f.o paramo, a.c.e parame, h paramh, bc parambc, x paramx1, x paramx2, x paramx3)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      Object localObject1 = null;
      Object localObject2 = null;
      int i = 2147483647;
      int j = -1;
      a.c.w localw = paramh.c(parame).l();
      if (localw.e()) {}
      label152:
      while (bool2)
      {
        a.c.e locale1 = localw.d();
        if (!bool2)
        {
          if (bool1) {
            return;
          }
          if (bool2) {}
        }
        else
        {
          if (!paramh.e(locale1)) {
            break label152;
          }
          a(paramo, locale1, paramh, parambc, paramx1, paramx2, paramx3);
        }
        a.c.e locale2 = (a.c.e)paramx1.get(locale1);
        a.c.e locale3 = (a.c.e)paramx2.get(locale1);
        int k = paramx3.getInt(locale2);
        int m = paramx3.getInt(locale3);
        if (!bool2) {
          if (bool1)
          {
            locale2 = locale3 = locale1;
            k = m = parambc.a(locale1).h();
          }
        }
        if (!bool2)
        {
          if (m > j)
          {
            localObject2 = locale3;
            j = m;
          }
          if (bool2) {}
        }
        else
        {
          if (k < i)
          {
            localObject1 = locale2;
            i = k;
          }
          localw.f();
        }
        if (!bool1) {
          break;
        }
      }
      if (parame != null)
      {
        paramx1.a(parame, localObject1);
        paramx2.a(parame, localObject2);
        paramx3.a(localObject1, i);
        paramx3.a(localObject2, j);
      }
    }
    
    private int a(a.c.e parame, h paramh, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      Object localObject1 = parame;
      if (((bool2) || (paramh != null)) && ((bool2) || (paramh.e(parame))))
      {
        localObject2 = paramh.d(parame);
        a.c.w localw = ((bb)localObject2).l();
        do
        {
          if (!localw.e()) {
            break;
          }
          a.c.e locale = localw.d();
          if (!bool2) {
            if (!paramh.e(locale))
            {
              localObject1 = locale;
              if (!bool2) {
                if (!bool1) {
                  break;
                }
              }
            }
            else
            {
              localw.f();
            }
          }
        } while (!bool1);
      }
      Object localObject2 = parambc.a((a.c.e)localObject1);
      if ((bool2) || (localObject2 != null)) {
        return ((ec)localObject2).h();
      }
      return -1;
    }
    
    private a.c.e[] a(a.f.o paramo, x paramx1, x paramx2, s.c_ paramc_)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      kc localkc = kc.d(paramo);
      if (localkc != null)
      {
        h localh = new h(paramo);
        a.c.e[] arrayOfe1 = paramo.t();
        int i = localkc.e().size();
        a.c.e[] arrayOfe2 = new a.c.e[i - 1];
        int j = 0;
        if (j < arrayOfe2.length) {
          arrayOfe2[j] = paramo.i();
        }
        while (bool2)
        {
          if (!bool2)
          {
            if (j > 0) {
              paramc_.a(arrayOfe2[(j - 1)], arrayOfe2[j]);
            }
            j++;
          }
          if (!bool1) {
            break;
          }
        }
        a.c.k localk = paramo.c(kc.b);
        if (localk != null)
        {
          int k = 0;
          label374:
          do
          {
            if (k >= arrayOfe1.length) {
              break;
            }
            if (bool2) {
              break label394;
            }
            a.c.e locale = arrayOfe1[k];
            jc localjc = (jc)localk.get(locale);
            if (bool1) {
              break label392;
            }
            if ((bool2) || (localjc != null))
            {
              pc localpc = localjc.c();
              if (bool2) {
                continue;
              }
              if (localpc != null)
              {
                if (!bool2) {
                  if (localh.e(locale))
                  {
                    if (!bool2) {
                      if (localpc.a() > 0) {
                        paramc_.b(paramx1.get(locale), arrayOfe2[(localpc.a() - 1)], 1);
                      }
                    }
                    if (bool2) {
                      continue;
                    }
                    if (localpc.a() >= i - 1) {
                      break label374;
                    }
                    paramc_.a(paramx2.get(locale), arrayOfe2[localpc.a()], 1);
                    if (bool2) {
                      continue;
                    }
                    if (!bool1) {
                      break label374;
                    }
                  }
                }
                if (!bool2) {
                  if (localpc.a() > 0) {
                    paramc_.b(locale, arrayOfe2[(localpc.a() - 1)], 1);
                  }
                }
                if (bool2) {
                  continue;
                }
                if (localpc.a() < i - 1) {
                  paramc_.a(locale, arrayOfe2[localpc.a()], 1);
                }
              }
            }
            k++;
          } while (!bool1);
        }
        if (!bool2) {
          localh.e();
        }
        label392:
        label394:
        return arrayOfe2;
      }
      return null;
    }
    
    private void a(a.f.o paramo, x paramx1, x paramx2, s.c_ paramc_, bc parambc, int paramInt)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.k localk1 = paramo.c(xb.a);
      if (!bool2) {
        if (localk1 == null) {
          return;
        }
      }
      a.c.k localk2 = (a.c.k)localk1.get(paramo);
      if (!bool2) {
        if (localk2 == null) {
          return;
        }
      }
      a.c.k localk3 = paramo.c(rc.a);
      HashMap localHashMap = new HashMap();
      Object localObject3;
      if (localk3 != null)
      {
        localObject1 = paramo.v();
        do
        {
          if (!((a.c.w)localObject1).e()) {
            break;
          }
          localObject2 = ((a.c.w)localObject1).d();
          if (!bool2) {}
          localObject3 = localk3.get(localObject2) != null ? localk3.get(localObject2) : localObject2;
          localHashMap.put(localObject3, localObject2);
          ((a.c.w)localObject1).f();
        } while (!bool1);
      }
      Object localObject1 = paramo.v();
      do
      {
        if (!((a.c.w)localObject1).e()) {
          break;
        }
        localObject2 = ((a.c.w)localObject1).d();
        localHashMap.put(localObject2, localObject2);
        ((a.c.w)localObject1).f();
      } while (!bool1);
      localObject1 = new h(paramo);
      Object localObject2 = paramo.v();
      label528:
      label816:
      label1125:
      do
      {
        do
        {
          if (!((a.c.w)localObject2).e()) {
            break;
          }
          localObject3 = ((a.c.w)localObject2).d();
          if (bool1) {
            return;
          }
          if ((bool2) || (localk3 != null)) {
            if (bool2) {}
          }
          Object localObject4 = localk3.get(localObject3) != null ? localk3.get(localObject3) : localObject3;
          a.c.z localz = (a.c.z)localk2.get(localObject4);
          if (!bool2)
          {
            if (localz != null)
            {
              int i = a((a.c.e)localObject3, (h)localObject1, parambc);
              a.c.y localy = localz.h();
              do
              {
                if (!localy.e()) {
                  break label1489;
                }
                Object localObject5 = localy.j();
                if (bool1) {
                  break;
                }
                if ((localObject5 instanceof fb))
                {
                  fb localfb = (fb)localObject5;
                  Object localObject6 = localfb.d();
                  a.c.e locale1 = (a.c.e)localHashMap.get(localObject6);
                  int j = localfb.c();
                  int k;
                  a.c.e locale4;
                  if (!bool2) {
                    if (j == 0)
                    {
                      k = a(locale1, (h)localObject1, parambc);
                      if (bool2) {
                        continue;
                      }
                      if (i != k) {
                        break label1477;
                      }
                      a.c.e locale3;
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          if (bool2) {
                            break label528;
                          }
                          if (((h)localObject1).e(locale1))
                          {
                            locale3 = (a.c.e)paramx1.get(localObject3);
                            locale4 = (a.c.e)paramx1.get(locale1);
                            if (bool2) {
                              continue;
                            }
                            if ((locale3 == null) || (locale4 == null)) {
                              break label1477;
                            }
                            paramc_.c(locale4, locale3);
                            if (bool2) {
                              continue;
                            }
                            if (!bool1) {
                              break label1477;
                            }
                          }
                        }
                      }
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          locale3 = (a.c.e)paramx1.get(localObject3);
                          if (bool2) {
                            continue;
                          }
                          if (locale3 == null) {
                            break label1477;
                          }
                          paramc_.c(locale1, locale3);
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                      }
                      if (!bool2)
                      {
                        if (((h)localObject1).e(locale1))
                        {
                          locale3 = (a.c.e)paramx1.get(locale1);
                          if (bool2) {
                            continue;
                          }
                          if (locale3 == null) {
                            break label1477;
                          }
                          paramc_.c(locale3, localObject3);
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                        paramc_.c(locale1, localObject3);
                      }
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {
                        break label1477;
                      }
                    }
                  }
                  int m;
                  a.c.e locale5;
                  if (!bool2) {
                    if (j == -1)
                    {
                      k = a(locale1, (h)localObject1, parambc);
                      if (bool2) {
                        continue;
                      }
                      if (k < i) {
                        break label1477;
                      }
                      m = Math.min(localfb.e(), k - i);
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          if (bool2) {
                            break label816;
                          }
                          if (((h)localObject1).e(locale1))
                          {
                            locale4 = (a.c.e)paramx2.get(localObject3);
                            locale5 = (a.c.e)paramx1.get(locale1);
                            if (bool2) {
                              continue;
                            }
                            if ((locale4 == null) || (locale5 == null)) {
                              break label1477;
                            }
                            paramc_.b(locale5, locale4, m, localfb.b());
                            if (bool2) {
                              continue;
                            }
                            if (!bool1) {
                              break label1477;
                            }
                          }
                        }
                      }
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          locale4 = (a.c.e)paramx2.get(localObject3);
                          if (bool2) {
                            continue;
                          }
                          if (locale4 == null) {
                            break label1477;
                          }
                          paramc_.b(locale1, locale4, m, localfb.b());
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                      }
                      if (!bool2)
                      {
                        if (((h)localObject1).e(locale1))
                        {
                          locale4 = (a.c.e)paramx1.get(locale1);
                          if (bool2) {
                            continue;
                          }
                          if (locale4 == null) {
                            break label1477;
                          }
                          paramc_.b(locale4, localObject3, m, localfb.b());
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                        paramc_.b(locale1, localObject3, m, localfb.b());
                      }
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {
                        break label1477;
                      }
                    }
                  }
                  if (!bool2) {
                    if (j == 1)
                    {
                      k = a(locale1, (h)localObject1, parambc);
                      if (bool2) {
                        continue;
                      }
                      if (k > i) {
                        break label1477;
                      }
                      m = Math.min(localfb.e(), i - k);
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          if (bool2) {
                            break label1125;
                          }
                          if (((h)localObject1).e(locale1))
                          {
                            locale4 = (a.c.e)paramx1.get(localObject3);
                            locale5 = (a.c.e)paramx2.get(locale1);
                            if (bool2) {
                              continue;
                            }
                            if ((locale4 == null) || (locale5 == null)) {
                              break label1477;
                            }
                            paramc_.a(locale5, locale4, m, localfb.b());
                            if (bool2) {
                              continue;
                            }
                            if (!bool1) {
                              break label1477;
                            }
                          }
                        }
                      }
                      if (!bool2) {
                        if (((h)localObject1).e((a.c.e)localObject3))
                        {
                          locale4 = (a.c.e)paramx1.get(localObject3);
                          if (bool2) {
                            continue;
                          }
                          if (locale4 == null) {
                            break label1477;
                          }
                          paramc_.a(locale1, locale4, m, localfb.b());
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                      }
                      if (!bool2)
                      {
                        if (((h)localObject1).e(locale1))
                        {
                          locale4 = (a.c.e)paramx2.get(locale1);
                          if (bool2) {
                            continue;
                          }
                          if (locale4 == null) {
                            break label1477;
                          }
                          paramc_.a(locale4, localObject3, m, localfb.b());
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {
                            break label1477;
                          }
                        }
                        paramc_.a(locale1, localObject3, m, localfb.b());
                      }
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {
                        break label1477;
                      }
                    }
                  }
                  a.c.e locale2;
                  if (!bool2)
                  {
                    if (j == 2)
                    {
                      if (bool2) {
                        continue;
                      }
                      if ((i == 0) && ((bool2) || (((h)localObject1).b((a.c.e)localObject3) == null))) {
                        if (!bool2)
                        {
                          if (((h)localObject1).e((a.c.e)localObject3))
                          {
                            locale2 = (a.c.e)paramx1.get(localObject3);
                            paramc_.a(locale2);
                            if (bool2) {
                              continue;
                            }
                            if (!bool1) {}
                          }
                          else
                          {
                            paramc_.a(localObject3);
                          }
                        }
                        else
                        {
                          if (bool2) {
                            continue;
                          }
                          if (!bool1) {}
                        }
                      }
                    }
                    else
                    {
                      if (bool2) {
                        continue;
                      }
                    }
                  }
                  else if (j == -2)
                  {
                    if (bool2) {
                      continue;
                    }
                    if (i == paramInt - 1)
                    {
                      if (!bool2)
                      {
                        if (((h)localObject1).b((a.c.e)localObject3) != null) {
                          break label1477;
                        }
                        if (bool2) {}
                      }
                      else
                      {
                        if (!((h)localObject1).e((a.c.e)localObject3)) {
                          break label1468;
                        }
                      }
                      locale2 = (a.c.e)paramx1.get(localObject3);
                      paramc_.b(locale2);
                      if (bool2) {
                        continue;
                      }
                      if (bool1) {
                        paramc_.b(localObject3);
                      }
                    }
                  }
                }
                localy.f();
              } while (!bool1);
            }
            ((a.c.w)localObject2).f();
          }
        } while (bool2);
      } while (!bool1);
      label1468:
      label1477:
      label1489:
      if (!bool2) {
        ((h)localObject1).e();
      }
    }
    
    protected void a(a.f.o paramo, s.c_ paramc_, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      h localh = new h(paramo);
      a.c.m localm = paramo.w();
      label420:
      label430:
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.d locald = localm.a();
        a.c.e locale1 = locald.e();
        a.c.e locale2 = locald.f();
        ec localec1 = parambc.a(locale1);
        ec localec2 = parambc.a(locale2);
        if (bool1) {
          return;
        }
        if ((bool2) || ((localec1 != null) && (localec2 != null)))
        {
          if (bool2) {
            continue;
          }
          if (!localh.e(locale1))
          {
            if (bool2) {
              continue;
            }
            if (!localh.e(locale2))
            {
              int i = localec1.h();
              int j = localec2.h();
              a.c.e locale3 = localh.b(locale1);
              a.c.e locale4 = localh.b(locale2);
              Object localObject1 = this.c.get(locale1);
              Object localObject2 = this.c.get(locale2);
              if (!bool2) {
                if ((locale3 == locale4) && ((bool2) || (!a(locale3, paramo, localh))))
                {
                  if (!bool2)
                  {
                    if (i < j)
                    {
                      paramc_.a(localObject1, localObject2, 1, 100 * paramo.l());
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {
                        break label430;
                      }
                    }
                    if (bool2) {}
                  }
                  else
                  {
                    if (j < i)
                    {
                      paramc_.a(localObject2, localObject1, 1);
                      if (bool2) {
                        continue;
                      }
                      if (!bool1) {
                        break label430;
                      }
                    }
                    paramc_.c(localObject1, localObject2);
                  }
                  if (bool2) {
                    continue;
                  }
                }
              }
              if ((bool1) && (locale3 != locale4))
              {
                if (!bool2) {
                  if (a(locale3, paramo, localh))
                  {
                    if (bool2) {
                      continue;
                    }
                    if (a(locale4, paramo, localh)) {
                      break label430;
                    }
                  }
                }
                if (!bool2)
                {
                  if (i < j)
                  {
                    paramc_.a(localObject1, localObject2, 1);
                    if (bool2) {
                      continue;
                    }
                    if (!bool1) {
                      break label430;
                    }
                  }
                  if (bool2) {}
                }
                else
                {
                  if (j >= i) {
                    break label420;
                  }
                  paramc_.a(localObject2, localObject1, 1);
                }
                if (bool2) {
                  continue;
                }
                if (bool1) {
                  paramc_.c(localObject1, localObject2);
                }
              }
            }
          }
        }
        localm.f();
      } while (!bool1);
      if (!bool2) {
        localh.e();
      }
    }
    
    private boolean a(a.c.e parame, a.c.q paramq, h paramh)
    {
      boolean bool = d.R;
      if (this.a == null) {
        return false;
      }
      if (parame == null) {
        return this.a.getBool(paramq);
      }
      if (!bool) {
        if (!this.a.getBool(parame)) {
          if (bool) {
            break label67;
          }
        }
      }
      label67:
      return a(paramh.b(parame), paramq, paramh);
    }
    
    w_(d.46 param46)
    {
      this();
    }
  }
  
  private class k_
    implements zb
  {
    private zb a;
    private yb b;
    private zb c;
    private a.c.k d;
    private x e;
    private Map f;
    private Map g;
    private boolean h;
    
    public k_(zb paramzb1, zb paramzb2, a.c.k paramk, x paramx, boolean paramBoolean)
    {
      this.a = paramzb1;
      this.c = paramzb2;
      this.d = paramk;
      this.e = paramx;
      this.h = paramBoolean;
    }
    
    public void a(a.f.o paramo, ac paramac, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.k localk = paramo.c(d.N);
      if (!bool2) {
        if (localk == null)
        {
          d.this.a(paramo, this.d, this.a, paramac, parambc, this.c, this.e, null);
          return;
        }
      }
      hb localhb = (hb)localk.get(paramo);
      localhb.c();
      if ((bool2) || ((!localhb.o()) || (h.c(paramo))))
      {
        localhb.b();
        d.this.a(paramo, this.d, this.a, paramac, parambc, this.c, this.e, localhb);
        return;
      }
      h localh = new h(paramo);
      this.b = new s(d.this.U());
      d.49 local49 = new d.49(this, localh);
      a.i.z localz = new a.i.z(paramo, local49);
      a.c.ab localab = new a.c.ab();
      if (!bool2) {
        if (this.h)
        {
          localObject1 = new h(paramo);
          try
          {
            ArrayList localArrayList1 = new ArrayList();
            ArrayList localArrayList2 = new ArrayList();
            a.c.m localm = new a.c.ab(paramo.w()).l();
            label380:
            label382:
            do
            {
              if (!localm.e()) {
                break;
              }
              a.c.d locald = localm.a();
              if (bool2) {
                break label582;
              }
              if (bool1) {
                break label579;
              }
              if (!((h)localObject1).a(locald))
              {
                localArrayList1.clear();
                localArrayList2.clear();
                a.c.e locale1 = locald.e();
                a.c.e locale2 = locald.f();
                a.c.e locale3 = ((h)localObject1).b(locale1);
                do
                {
                  do
                  {
                    if (locale3 == ((h)localObject1).d()) {
                      break;
                    }
                    localArrayList1.add(locale3);
                    if (bool2) {
                      break label382;
                    }
                    locale3 = ((h)localObject1).b(locale3);
                    if (bool1) {
                      break label380;
                    }
                  } while (!bool1);
                } while (bool2);
                locale3 = ((h)localObject1).b(locale2);
                if (locale3 != ((h)localObject1).d())
                {
                  localArrayList2.add(locale3);
                  locale3 = ((h)localObject1).b(locale3);
                }
                while (bool2)
                {
                  if (bool2) {
                    break label569;
                  }
                  if (bool1) {
                    break label567;
                  }
                  if (!bool1) {
                    break;
                  }
                }
                int i = 0;
                do
                {
                  do
                  {
                    while (bool1) {
                      if (i >= localArrayList1.size()) {
                        break;
                      }
                    }
                    if ((i >= localArrayList2.size()) || (localArrayList1.get(i) != localArrayList2.get(i))) {
                      break;
                    }
                    i++;
                  } while (!bool1);
                } while (bool2);
                a.c.e locale4 = i > 0 ? (a.c.e)localArrayList1.get(i - 1) : ((h)localObject1).d();
                a.c.e locale5 = ((h)localObject1).a(locale1, locale4);
                a.c.e locale6 = ((h)localObject1).a(locale2, locale4);
                localab.add(paramo.a(locale5, locale6));
              }
              localm.f();
            } while (!bool1);
            label567:
            label569:
            if (bool2) {}
          }
          finally
          {
            label579:
            label582:
            ((h)localObject1).e();
          }
        }
      }
      a(paramo, null, paramac, localh, localz, parambc);
      Object localObject1 = localab.l();
      if (((a.c.m)localObject1).e())
      {
        paramo.a(((a.c.m)localObject1).a());
        ((a.c.m)localObject1).f();
      }
      for (;;)
      {
        if ((bool2) || (!bool1))
        {
          if (!bool1) {
            break;
          }
          localh.e();
          if (!bool2) {
            localhb.b();
          }
        }
      }
    }
    
    private void a(a.f.o paramo, ac paramac)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      int i = 0;
      Object localObject1;
      Object localObject2;
      a.c.e locale1;
      a.c.e locale2;
      label159:
      do
      {
        if (i >= paramac.a()) {
          break;
        }
        localObject1 = paramac.a(i);
        a.i.n.b("Nodes in Layer " + i + " : ");
        if (bool1) {
          break label181;
        }
        localObject2 = ((vb)localObject1).c().l();
        do
        {
          do
          {
            if (!((a.c.w)localObject2).e()) {
              break label159;
            }
            locale1 = ((a.c.w)localObject2).d();
            locale2 = locale1;
            if (bool1) {
              break;
            }
            if ((paramo instanceof a.f.p)) {
              locale2 = (a.c.e)((a.f.p)paramo).w(locale1);
            }
            a.i.n.b(locale2 + " ");
            ((a.c.w)localObject2).f();
          } while (!bool1);
          a.i.n.a("");
          i++;
        } while (bool2);
      } while (!bool1);
      label181:
      a.c.w localw = paramo.v();
      label343:
      label487:
      do
      {
        do
        {
          if (!localw.e()) {
            break;
          }
          localObject1 = localw.d();
          if (bool1) {
            return;
          }
          localObject2 = ((a.c.e)localObject1).i();
          Object localObject3;
          do
          {
            do
            {
              if (localObject2 == null) {
                break label343;
              }
              locale1 = ((a.c.d)localObject2).e();
              locale2 = ((a.c.d)localObject2).f();
              localObject3 = localObject2;
              if (bool1) {
                break;
              }
              if ((paramo instanceof a.f.p))
              {
                localObject3 = (a.c.d)((a.f.p)paramo).t((a.c.d)localObject2);
                locale1 = (a.c.e)((a.f.p)paramo).w(locale1);
                locale2 = (a.c.e)((a.f.p)paramo).w(locale2);
              }
              a.i.n.a("Edge " + locale2 + " <- " + locale1 + ", original:" + localObject3);
              localObject2 = ((a.c.d)localObject2).j();
            } while (!bool1);
          } while (bool2);
          localObject2 = ((a.c.e)localObject1).h();
          do
          {
            if (localObject2 == null) {
              break label487;
            }
            locale1 = ((a.c.d)localObject2).e();
            locale2 = ((a.c.d)localObject2).f();
            localObject3 = localObject2;
            if (bool1) {
              break;
            }
            if ((paramo instanceof a.f.p))
            {
              localObject3 = (a.c.d)((a.f.p)paramo).t((a.c.d)localObject2);
              locale1 = (a.c.e)((a.f.p)paramo).w(locale1);
              locale2 = (a.c.e)((a.f.p)paramo).w(locale2);
            }
            a.i.n.a("Edge " + locale1 + " -> " + locale2 + ", original:" + localObject3);
            localObject2 = ((a.c.d)localObject2).i();
          } while (!bool1);
          a.i.n.a("");
          localw.f();
        } while (bool2);
      } while (!bool1);
      if (!bool2) {
        a.i.n.a("-----------------------------");
      }
    }
    
    private void a(a.f.o paramo, a.c.e parame, ac paramac, h paramh, a.i.z paramz, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a(paramo, paramh, paramh.c(parame));
      paramz.c(parame);
      cb localcb = new cb();
      localcb.a(paramo);
      d.i_ locali_ = d.this.b(paramo, this.d);
      this.a.a(paramo, paramac, parambc);
      if (!bool2)
      {
        d.this.a(paramo, paramac);
        if (paramh.e(parame))
        {
          d.this.a(this.c, paramo, paramac, parambc, locali_, this.e, paramh, parame);
          if (bool2) {
            break label167;
          }
          if (!bool1) {
            break label150;
          }
        }
      }
      d.this.a(this.c, paramo, paramac, parambc, locali_, this.e, null);
      label150:
      localcb.b(paramo);
      paramz.g();
      a(paramo);
      label167:
      int i = 0;
      label394:
      label491:
      do
      {
        for (;;)
        {
          if (i >= paramac.a()) {
            return;
          }
          vb localvb1 = paramac.a(i);
          bb localbb1 = localvb1.c();
          ac localac = paramac.b();
          bb localbb2 = new bb();
          bb localbb3 = new bb();
          do
          {
            a.c.w localw1 = localbb1.l();
            do
            {
              if (!localw1.e()) {
                break;
              }
              a.c.e locale1 = localw1.d();
              if (bool1) {
                break label394;
              }
              if (paramh.e(locale1))
              {
                localbb3.add(locale1);
                localObject1 = paramac.b();
                a(paramo, locale1, (ac)localObject1, paramh, paramz, parambc);
                if (!bool2)
                {
                  if (((ac)localObject1).a() > 0)
                  {
                    this.b.a(paramo, parambc, (ac)localObject1, localac);
                    localbb3.add(locale1);
                    if (bool2) {
                      continue;
                    }
                    if (!bool1) {}
                  }
                  else
                  {
                    localbb2.add(locale1);
                  }
                }
                else
                {
                  if (bool2) {
                    continue;
                  }
                  if (!bool1) {}
                }
              }
              else
              {
                localbb2.add(locale1);
              }
              localw1.f();
            } while (!bool1);
          } while (bool2);
          if (localbb3.size() <= 0) {
            break;
          }
          int j = localac.a();
          int k = 0;
          if (!bool2) {}
          switch (d.this.U())
          {
          case 18: 
            k = 0;
            if (!bool2) {
              if (!bool1) {
                break label491;
              }
            }
          case 66: 
            k = j / 2;
            if ((!bool2) && (!bool1)) {}
            break;
          case 34: 
            k = j - 1;
          }
          Object localObject1 = localbb2.l();
          Object localObject2;
          do
          {
            do
            {
              if (!((a.c.w)localObject1).e()) {
                break label555;
              }
              localObject2 = ((a.c.w)localObject1).d();
              localac.a(k).a((a.c.e)localObject2);
              ((a.c.w)localObject1).f();
              if ((!bool2) && (bool1)) {
                break;
              }
            } while (!bool1);
          } while (bool2);
          int m = 0;
          do
          {
            if (m >= j) {
              break label681;
            }
            localObject2 = localac.a(m);
            vb localvb2 = paramac.a(((vb)localObject2).d(), i + m);
            if (bool1) {
              break;
            }
            a.c.w localw2 = ((vb)localObject2).c().l();
            do
            {
              if (!localw2.e()) {
                break;
              }
              a.c.e locale2 = localw2.d();
              localvb2.a(locale2);
              localw2.f();
              if (bool2) {
                break label678;
              }
              if (bool1) {
                break label676;
              }
            } while (!bool1);
            if (!bool2) {
              m++;
            }
          } while (!bool1);
          i += j;
          paramac.b(i);
          if (bool2) {}
        }
        i++;
      } while (!bool1);
      label555:
    }
    
    private void a(a.f.o paramo, h paramh, bb parambb)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      this.f = new HashMap();
      this.g = new HashMap();
      a.c.w localw = parambb.l();
      label210:
      label351:
      label358:
      label360:
      do
      {
        if (!localw.e()) {
          break;
        }
        a.c.e locale = localw.d();
        if (paramh.e(locale))
        {
          bb localbb = new bb();
          a(paramh, locale, localbb);
          a.c.ab localab1 = new a.c.ab();
          a.c.ab localab2;
          Object localObject2;
          do
          {
            localab2 = new a.c.ab();
            localObject1 = localbb.l();
            do
            {
              if (!((a.c.w)localObject1).e()) {
                break;
              }
              localObject2 = ((a.c.w)localObject1).d();
              localab2.a(((a.c.e)localObject2).m());
              localab1.a(((a.c.e)localObject2).n());
              ((a.c.w)localObject1).f();
              if (bool2) {
                break label360;
              }
              if (bool1) {
                break label358;
              }
            } while (!bool1);
          } while (bool2);
          Object localObject1 = localab2.l();
          do
          {
            do
            {
              if (!((a.c.m)localObject1).e()) {
                break;
              }
              localObject2 = ((a.c.m)localObject1).a();
              if (bool1) {
                break label306;
              }
              if (((a.c.d)localObject2).e() != locale)
              {
                this.f.put(localObject2, ((a.c.d)localObject2).f());
                paramo.a((a.c.d)localObject2, ((a.c.d)localObject2).e(), locale);
              }
              ((a.c.m)localObject1).f();
            } while (!bool1);
          } while (bool2);
          localObject1 = localab1.l();
          do
          {
            if (!((a.c.m)localObject1).e()) {
              break label351;
            }
            localObject2 = ((a.c.m)localObject1).a();
            if (bool2) {
              break label210;
            }
            if (bool1) {
              break;
            }
            if (((a.c.d)localObject2).f() != locale)
            {
              this.g.put(localObject2, ((a.c.d)localObject2).e());
              paramo.a((a.c.d)localObject2, locale, ((a.c.d)localObject2).f());
            }
            ((a.c.m)localObject1).f();
          } while (!bool1);
        }
        localw.f();
      } while (!bool1);
      label306:
    }
    
    private void a(h paramh, a.c.e parame, bb parambb)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      bb localbb = paramh.c(parame);
      a.c.w localw = localbb.l();
      do
      {
        if (!localw.e()) {
          break;
        }
        a.c.e locale = localw.d();
        parambb.add(locale);
        if (!bool2)
        {
          if (paramh.e(locale)) {
            a(paramh, locale, parambb);
          }
          localw.f();
        }
      } while (!bool1);
    }
    
    private void a(a.f.o paramo)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.ab localab = new a.c.ab(paramo.w());
      a.c.m localm = localab.l();
      a.c.d locald;
      a.c.e locale;
      do
      {
        do
        {
          if (!localm.e()) {
            break;
          }
          locald = localm.a();
          locale = (a.c.e)this.g.get(locald);
          if (bool1) {
            break label139;
          }
          if (locale != null) {
            paramo.a(locald, locale, locald.f());
          }
          localm.f();
        } while (!bool1);
      } while (bool2);
      localm = localab.l();
      label139:
      do
      {
        if (!localm.e()) {
          break;
        }
        locald = localm.a();
        locale = (a.c.e)this.f.get(locald);
        if (locale != null) {
          paramo.a(locald, locald.e(), locale);
        }
        localm.f();
      } while (!bool1);
    }
  }
  
  static final class i_
  {
    final List a = new ArrayList(120);
    final List b = new ArrayList(120);
    final List c = new ArrayList(120);
    final List d = new ArrayList(120);
  }
  
  static final class g_
    implements ac
  {
    final List a = new ArrayList();
    final bc b;
    boolean c;
    
    g_(bc parambc)
    {
      this.b = parambc;
    }
    
    public ac b()
    {
      return new g_(this.b);
    }
    
    public vb a(int paramInt)
    {
      return (vb)this.a.get(paramInt);
    }
    
    public vb a(byte paramByte, int paramInt)
    {
      a_ locala_;
      if (!d.R) {
        if (this.a.size() > paramInt)
        {
          locala_ = new a_(paramByte, paramInt);
          this.a.add(paramInt, locala_);
          this.c = true;
          return locala_;
        }
      }
      if (this.a.size() == paramInt)
      {
        locala_ = new a_(paramByte, paramInt);
        this.a.add(locala_);
        return locala_;
      }
      throw new IndexOutOfBoundsException();
    }
    
    public void b(int paramInt)
    {
      if (paramInt < this.a.size() - 1) {
        this.c = true;
      }
      a_ locala_ = (a_)this.a.remove(paramInt);
      locala_.f = -1;
    }
    
    public int a()
    {
      return this.a.size();
    }
    
    void c()
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      if ((bool2) || (this.c))
      {
        int i = 0;
        if (i < this.a.size()) {}
        while (bool2)
        {
          a_ locala_ = (a_)this.a.get(i);
          locala_.f = i;
          i++;
          if ((!bool2) && (bool1)) {
            return;
          }
          if (!bool1) {
            break;
          }
        }
        this.c = false;
      }
    }
    
    final class a_
      implements vb
    {
      pc e = null;
      int f;
      bb g = new bb();
      byte h;
      a.c.ab i = new a.c.ab();
      
      public void b()
      {
        if (!d.R) {
          if (this.f < 0) {
            throw new IllegalStateException();
          }
        }
        d.g_.this.b(e());
      }
      
      public a_(byte paramByte, int paramInt)
      {
        this.f = paramInt;
        this.h = paramByte;
      }
      
      public pc f()
      {
        return this.e;
      }
      
      public void a(pc parampc)
      {
        this.e = parampc;
      }
      
      public void a(a.c.e parame)
      {
        d.q_ localq_ = (d.q_)d.g_.this.b.a(parame);
        localq_.a(this);
        localq_.a(this.g.size());
        this.g.add(parame);
      }
      
      public int e()
      {
        if (!d.R) {
          if (d.g_.this.c) {
            d.g_.this.c();
          }
        }
        return this.f;
      }
      
      public bb c()
      {
        return this.g;
      }
      
      public byte d()
      {
        return this.h;
      }
      
      public void a(a.c.z paramz)
      {
        boolean bool2 = d.R;
        boolean bool1 = d.Q;
        if (!bool2) {
          if (paramz.size() != this.g.size()) {
            throw new IllegalArgumentException();
          }
        }
        a.c.v localv1 = paramz.f();
        a.c.v localv2 = this.g.f();
        int j = 0;
        do
        {
          if (localv1 == null) {
            break;
          }
          a.c.e locale = (a.c.e)localv1.c();
          localv2.a(locale);
          d.q_ localq_ = (d.q_)d.g_.this.b.a(locale);
          localq_.a(j);
          j++;
          localv1 = localv1.a();
          localv2 = localv2.a();
        } while (!bool1);
      }
      
      public void b(a.c.e parame)
      {
        boolean bool2 = d.R;
        boolean bool1 = d.Q;
        int j = 0;
        a.c.v localv = this.g.f();
        do
        {
          if (localv == null) {
            break;
          }
          a.c.e locale = (a.c.e)localv.c();
          if ((bool2) || (locale == parame))
          {
            this.g.h(localv);
            if (bool2) {
              continue;
            }
            if (!bool1) {}
          }
          else
          {
            d.q_ localq_ = (d.q_)d.g_.this.b.a(locale);
            localq_.a(j);
            j++;
          }
          localv = localv.a();
        } while (!bool1);
      }
      
      public a.c.z a()
      {
        return this.i;
      }
      
      public void a(a.c.d paramd)
      {
        this.i.add(paramd);
      }
    }
  }
  
  static final class t_
    implements bc
  {
    x a;
    a.c.n b;
    
    public t_(x paramx, a.c.n paramn)
    {
      this.a = paramx;
      this.b = paramn;
    }
    
    public y a(a.c.d paramd)
    {
      return (y)this.b.get(paramd);
    }
    
    public ec a(a.c.e parame)
    {
      return (ec)this.a.get(parame);
    }
  }
  
  static final class u_
    implements ab
  {
    public void a(a.f.o paramo, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.m localm = paramo.w();
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.d locald = localm.a();
        int i = parambc.a(locald.e()).h();
        int j = parambc.a(locald.f()).h();
        if (!bool2)
        {
          if (i > j) {
            a(paramo, parambc, locald);
          }
          localm.f();
        }
      } while (!bool1);
    }
    
    public void a(a.f.o paramo, bc parambc, a.c.d paramd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.f.zb localzb = paramo.e(paramd);
      a.d.w localw1 = localzb.c();
      a.d.w localw2 = localzb.d();
      localzb.a(localw2);
      localzb.b(localw1);
      if ((bool2) || (localzb.a() > 0))
      {
        int i = 0;
        int j = localzb.a() - 1;
        do
        {
          if (i >= j) {
            break;
          }
          a.d.w localw3 = localzb.a(i);
          a.d.w localw4 = localzb.a(j);
          localzb.a(i, localw4.a, localw4.b);
          localzb.a(j, localw3.a, localw3.b);
          i++;
          j--;
          if ((!bool2) && (bool1)) {
            break label180;
          }
        } while (!bool1);
      }
      if (!bool2) {
        paramo.e(paramd);
      }
      label180:
      d.j_ localj_ = (d.j_)parambc.a(paramd);
      if (!bool2) {}
      localj_.c(!localj_.k());
    }
    
    public void b(a.f.o paramo, bc parambc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.m localm = paramo.w();
      do
      {
        if (!localm.e()) {
          break;
        }
        a.c.d locald = localm.a();
        if (!bool2)
        {
          if (parambc.a(locald).k()) {
            a(paramo, parambc, locald);
          }
          localm.f();
        }
      } while (!bool1);
    }
  }
  
  static class o_
    extends d.n_
  {
    Object r;
    Object s;
    
    o_(a.c.d paramd, z paramz, Object paramObject1, Object paramObject2, a.f.cd paramcd1, Collection paramCollection1, a.f.cd paramcd2, Collection paramCollection2)
    {
      super(paramz, paramcd1, paramCollection1, paramcd2, paramCollection2);
      this.r = paramObject1;
      this.s = paramObject2;
    }
    
    public Object h()
    {
      return this.r;
    }
    
    public Object i()
    {
      return this.s;
    }
    
    public void c(boolean paramBoolean)
    {
      boolean bool = d.R;
      if (!bool) {
        if (this.i != paramBoolean)
        {
          if (!bool) {
            if (this.i)
            {
              localObject = this.r;
              if (!bool) {}
              this.r = (this.s != null ? ((a.i.nb)this.s).b : null);
              if (!bool) {}
              this.s = (localObject != null ? ((a.i.nb)localObject).b : null);
              if (bool) {
                return;
              }
              if (!d.Q) {
                break label149;
              }
            }
          }
          Object localObject = this.r;
          if (!bool) {}
          this.r = (this.s != null ? a.i.nb.a("HierarchicLayouter.REVERSED_EDGE_GROUP_PREFIX", this.s) : null);
          if (!bool) {}
          this.s = (localObject != null ? a.i.nb.a("HierarchicLayouter.REVERSED_EDGE_GROUP_PREFIX", localObject) : null);
        }
      }
      label149:
      super.c(paramBoolean);
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      if (!bool2)
      {
        if (paramBoolean)
        {
          if (!bool2)
          {
            if (this.i)
            {
              if (bool2) {
                break label90;
              }
              this.l = paramcd;
              if (!bool1) {
                return this;
              }
            }
            if (bool2) {
              break label90;
            }
            this.k = paramcd;
          }
          if (!bool1) {
            return this;
          }
        }
        if (bool2) {}
      }
      else if (this.i)
      {
        if (bool2) {
          break label90;
        }
        this.k = paramcd;
        if (!bool1) {
          return this;
        }
      }
      this.l = paramcd;
      label90:
      return this;
    }
  }
  
  static class m_
    extends d.l_
  {
    Object k;
    Object l;
    
    m_(z paramz, Object paramObject1, Object paramObject2)
    {
      super();
      this.k = paramObject1;
      this.l = paramObject2;
    }
    
    public Object h()
    {
      return this.k;
    }
    
    public Object i()
    {
      return this.l;
    }
    
    public void a(Object paramObject)
    {
      this.k = paramObject;
    }
    
    public void b(Object paramObject)
    {
      this.l = paramObject;
    }
    
    public void c(boolean paramBoolean)
    {
      boolean bool = d.R;
      if (!bool) {
        if (this.i != paramBoolean)
        {
          if (!bool) {
            if (this.i)
            {
              localObject = this.k;
              if (!bool) {}
              this.k = (this.l != null ? ((a.i.nb)this.l).b : null);
              if (!bool) {}
              this.l = (localObject != null ? ((a.i.nb)localObject).b : null);
              if (bool) {
                return;
              }
              if (!d.Q) {
                break label149;
              }
            }
          }
          Object localObject = this.k;
          if (!bool) {}
          this.k = (this.l != null ? a.i.nb.a("HierarchicLayouter.REVERSED_EDGE_GROUP_PREFIX", this.l) : null);
          if (!bool) {}
          this.l = (localObject != null ? a.i.nb.a("HierarchicLayouter.REVERSED_EDGE_GROUP_PREFIX", localObject) : null);
        }
      }
      label149:
      super.c(paramBoolean);
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      d.o_ localo_;
      if (k())
      {
        localo_ = new d.o_(c(), m(), i(), h(), paramBoolean ? null : paramcd, e(), paramBoolean ? paramcd : null, g());
        if (d.R) {
          break label125;
        }
        localo_.c(true);
        if (!d.Q) {}
      }
      else
      {
        localo_ = new d.o_(c(), m(), h(), i(), paramBoolean ? paramcd : null, e(), paramBoolean ? null : paramcd, g());
      }
      label125:
      return localo_;
    }
  }
  
  static class n_
    extends d.l_
  {
    a.f.cd k;
    a.f.cd l;
    Collection m;
    Collection n;
    Object o;
    Object p;
    a.c.d q;
    
    n_(a.c.d paramd, z paramz, a.f.cd paramcd1, Collection paramCollection1, a.f.cd paramcd2, Collection paramCollection2)
    {
      this(paramd, paramz, paramcd1, paramCollection1, paramcd2, paramCollection2, null, null);
    }
    
    n_(a.c.d paramd, z paramz, a.f.cd paramcd1, Collection paramCollection1, a.f.cd paramcd2, Collection paramCollection2, Object paramObject1, Object paramObject2)
    {
      super();
      this.q = paramd;
      this.n = paramCollection2;
      this.m = paramCollection1;
      this.k = paramcd1;
      this.l = paramcd2;
      this.o = paramObject1;
      this.p = paramObject2;
    }
    
    public Object h()
    {
      if (!d.R) {}
      return this.i ? this.p : this.o;
    }
    
    public Object i()
    {
      if (!d.R) {}
      return this.i ? this.o : this.p;
    }
    
    public a.c.d c()
    {
      return this.q;
    }
    
    public a.f.cd d()
    {
      if (!d.R) {}
      return this.i ? this.l : this.k;
    }
    
    public Collection e()
    {
      if (!d.R) {}
      return this.i ? this.n : this.m;
    }
    
    public a.f.cd f()
    {
      if (!d.R) {}
      return this.i ? this.k : this.l;
    }
    
    public Collection g()
    {
      if (!d.R) {}
      return this.i ? this.m : this.n;
    }
    
    public boolean l()
    {
      boolean bool = d.R;
      a.f.cd localcd1 = d();
      a.f.cd localcd2 = f();
      if (!bool) {
        if (localcd1 != null)
        {
          if (!bool)
          {
            if (localcd1.c()) {
              return true;
            }
            if (bool) {
              break label49;
            }
          }
          if (localcd1.d()) {
            return false;
          }
        }
      }
      label49:
      if ((bool) || (localcd2 != null))
      {
        if (!bool) {
          if (localcd2.c()) {
            return true;
          }
        }
        if (bool) {
          break label86;
        }
        if (localcd2.d()) {
          return false;
        }
      }
      label86:
      return n();
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      if (!bool2)
      {
        if (paramBoolean)
        {
          if (!bool2)
          {
            if (this.i)
            {
              if (bool2) {
                break label90;
              }
              this.l = paramcd;
              if (!bool1) {
                return this;
              }
            }
            if (bool2) {
              break label90;
            }
            this.k = paramcd;
          }
          if (!bool1) {
            return this;
          }
        }
        if (bool2) {}
      }
      else if (this.i)
      {
        if (bool2) {
          break label90;
        }
        this.k = paramcd;
        if (!bool1) {
          return this;
        }
      }
      this.l = paramcd;
      label90:
      return this;
    }
  }
  
  static class l_
    implements d.j_
  {
    boolean h;
    boolean i;
    final z j;
    
    public void a(boolean paramBoolean)
    {
      this.h = paramBoolean;
    }
    
    public boolean n()
    {
      return this.h;
    }
    
    l_(z paramz)
    {
      this.j = paramz;
    }
    
    public z m()
    {
      return this.j;
    }
    
    public a.c.d c()
    {
      return null;
    }
    
    public a.c.e b()
    {
      return null;
    }
    
    public Object j()
    {
      return null;
    }
    
    public Object h()
    {
      return null;
    }
    
    public Object i()
    {
      return null;
    }
    
    public byte a()
    {
      return 0;
    }
    
    public boolean k()
    {
      return this.i;
    }
    
    public void c(boolean paramBoolean)
    {
      this.i = paramBoolean;
    }
    
    public a.f.cd d()
    {
      return null;
    }
    
    public Collection e()
    {
      return null;
    }
    
    public a.f.cd f()
    {
      return null;
    }
    
    public Collection g()
    {
      return null;
    }
    
    public boolean l()
    {
      return n();
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      d.n_ localn_;
      if (k())
      {
        localn_ = new d.n_(c(), m(), paramBoolean ? null : paramcd, g(), paramBoolean ? paramcd : null, e());
        if (d.R) {
          break label109;
        }
        localn_.c(true);
        if (!d.Q) {}
      }
      else
      {
        localn_ = new d.n_(c(), m(), paramBoolean ? paramcd : null, e(), paramBoolean ? null : paramcd, g());
      }
      label109:
      return localn_;
    }
  }
  
  static class z_
    implements d.j_
  {
    final a.c.d h;
    final y i;
    
    z_(a.c.d paramd, y paramy)
    {
      this.h = paramd;
      this.i = paramy;
    }
    
    public z m()
    {
      return this.i.m();
    }
    
    public a.c.d c()
    {
      return this.h;
    }
    
    public a.c.e b()
    {
      return null;
    }
    
    public Object j()
    {
      return null;
    }
    
    public a.f.cd d()
    {
      return null;
    }
    
    public Collection e()
    {
      return null;
    }
    
    public Object h()
    {
      return null;
    }
    
    public a.f.cd f()
    {
      return null;
    }
    
    public Collection g()
    {
      return null;
    }
    
    public Object i()
    {
      return null;
    }
    
    public byte a()
    {
      return 0;
    }
    
    public boolean k()
    {
      return this.i.k();
    }
    
    public boolean l()
    {
      return n();
    }
    
    public void c(boolean paramBoolean)
    {
      throw new UnsupportedOperationException();
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      d.n_ localn_;
      if (k())
      {
        localn_ = new d.n_(c(), m(), paramBoolean ? null : paramcd, g(), paramBoolean ? paramcd : null, e());
        localn_.c(true);
        if (d.R) {
          return localn_;
        }
        if (!d.Q) {}
      }
      else
      {
        localn_ = new d.n_(c(), m(), paramBoolean ? paramcd : null, e(), paramBoolean ? null : paramcd, g());
      }
      localn_.a(n());
      return localn_;
    }
    
    public void a(boolean paramBoolean)
    {
      this.i.a(paramBoolean);
    }
    
    public boolean n()
    {
      return this.i.n();
    }
  }
  
  static class rb_
    extends d.qb_
  {
    final a.c.d[] x;
    final double y;
    final double z;
    
    rb_(double paramDouble1, double paramDouble2, a.c.d[] paramArrayOfd, vc paramvc)
    {
      super(null, paramvc, null);
      this.x = paramArrayOfd;
      this.y = paramDouble2;
      this.z = paramDouble1;
    }
  }
  
  static class p_
    implements d.j_
  {
    private Object h;
    private Object i;
    private a.c.d j;
    private z k;
    
    p_(Object paramObject1, Object paramObject2, a.c.d paramd, z paramz)
    {
      this.k = paramz;
      this.h = paramObject1;
      this.i = paramObject2;
      this.j = paramd;
    }
    
    public z m()
    {
      return this.k;
    }
    
    public a.c.d c()
    {
      return this.j;
    }
    
    public a.c.e b()
    {
      return null;
    }
    
    public Object j()
    {
      return null;
    }
    
    public a.f.cd d()
    {
      return null;
    }
    
    public Collection e()
    {
      return null;
    }
    
    public Object h()
    {
      return this.h;
    }
    
    public a.f.cd f()
    {
      return null;
    }
    
    public Collection g()
    {
      return null;
    }
    
    public Object i()
    {
      return this.i;
    }
    
    public byte a()
    {
      return 3;
    }
    
    public boolean k()
    {
      return false;
    }
    
    public void c(boolean paramBoolean)
    {
      throw new UnsupportedOperationException();
    }
    
    public boolean l()
    {
      return n();
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      throw new UnsupportedOperationException("group node connector may not have portconstraints");
    }
    
    public void a(boolean paramBoolean) {}
    
    public boolean n()
    {
      return false;
    }
  }
  
  static class ab_
    extends d.z_
  {
    ab_(a.c.d paramd, y paramy)
    {
      super(paramy);
    }
    
    public a.f.cd f()
    {
      return this.i.d();
    }
    
    public Collection g()
    {
      return this.i.e();
    }
    
    public Object j()
    {
      return this.i.j();
    }
    
    public Object i()
    {
      return this.i.h();
    }
    
    public boolean k()
    {
      if (!d.R) {}
      return !this.i.k();
    }
    
    public boolean l()
    {
      boolean bool = d.R;
      a.f.cd localcd = this.i.d();
      if ((bool) || (localcd != null))
      {
        if (!bool) {
          if (localcd.c()) {
            return true;
          }
        }
        if (bool) {
          break label52;
        }
        if (localcd.d()) {
          return false;
        }
      }
      label52:
      return n();
    }
  }
  
  static class bb_
    extends d.z_
  {
    bb_(a.c.d paramd, y paramy)
    {
      super(paramy);
    }
    
    public a.f.cd f()
    {
      return this.i.f();
    }
    
    public Collection g()
    {
      return this.i.g();
    }
    
    public Object j()
    {
      return this.i.j();
    }
    
    public Object i()
    {
      return this.i.i();
    }
    
    public boolean l()
    {
      boolean bool = d.R;
      a.f.cd localcd = this.i.f();
      if ((bool) || (localcd != null))
      {
        if (!bool) {
          if (localcd.c()) {
            return true;
          }
        }
        if (bool) {
          break label52;
        }
        if (localcd.d()) {
          return false;
        }
      }
      label52:
      return n();
    }
  }
  
  static class r_
    implements d.j_
  {
    public byte a()
    {
      return 6;
    }
    
    public a.c.e b()
    {
      return null;
    }
    
    public a.c.d c()
    {
      return null;
    }
    
    public a.f.cd d()
    {
      return null;
    }
    
    public Collection e()
    {
      return null;
    }
    
    public a.f.cd f()
    {
      return null;
    }
    
    public Collection g()
    {
      return null;
    }
    
    public Object h()
    {
      return null;
    }
    
    public Object i()
    {
      return null;
    }
    
    public Object j()
    {
      return null;
    }
    
    public boolean k()
    {
      return false;
    }
    
    public boolean l()
    {
      return false;
    }
    
    public z m()
    {
      return null;
    }
    
    public void a(boolean paramBoolean) {}
    
    public boolean n()
    {
      return false;
    }
    
    public void c(boolean paramBoolean) {}
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      return this;
    }
  }
  
  static class db_
    extends d.z_
  {
    db_(a.c.d paramd, y paramy)
    {
      super(paramy);
    }
    
    public a.f.cd d()
    {
      return this.i.f();
    }
    
    public Collection e()
    {
      return this.i.g();
    }
    
    public Object j()
    {
      return this.i.j();
    }
    
    public Object h()
    {
      return this.i.i();
    }
    
    public boolean l()
    {
      boolean bool = d.R;
      a.f.cd localcd = this.i.f();
      if ((bool) || (localcd != null))
      {
        if (!bool) {
          if (localcd.c()) {
            return true;
          }
        }
        if (bool) {
          break label52;
        }
        if (localcd.d()) {
          return false;
        }
      }
      label52:
      return n();
    }
    
    public boolean k()
    {
      if (!d.R) {}
      return !this.i.k();
    }
  }
  
  static class cb_
    extends d.z_
  {
    cb_(a.c.d paramd, y paramy)
    {
      super(paramy);
    }
    
    public a.f.cd d()
    {
      return this.i.d();
    }
    
    public Collection e()
    {
      return this.i.e();
    }
    
    public Object j()
    {
      return this.i.j();
    }
    
    public Object h()
    {
      return this.i.h();
    }
    
    public boolean l()
    {
      boolean bool = d.R;
      a.f.cd localcd = this.i.d();
      if ((bool) || (localcd != null))
      {
        if (!bool) {
          if (localcd.c()) {
            return true;
          }
        }
        if (bool) {
          break label52;
        }
        if (localcd.d()) {
          return false;
        }
      }
      label52:
      return n();
    }
  }
  
  static final class eb_
    implements d.q_
  {
    final ec q;
    a.d.f[] r;
    
    eb_(a.c.e parame, ec paramec)
    {
      this.q = paramec;
    }
    
    public d.tb_ l()
    {
      return d.tb_.g;
    }
    
    public vc n()
    {
      return this.q.n();
    }
    
    public fc m()
    {
      return null;
    }
    
    public ec o()
    {
      return this.q;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      return ((d.q_)this.q).a(paramd);
    }
    
    public void a(a.c.v paramv)
    {
      ((d.q_)this.q).a(paramv);
    }
    
    public a.d.f a(int paramInt, a.f.zc paramzc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      if (!bool2) {
        if (this.r == null) {
          this.r = new a.d.f[4];
        }
      }
      if (!bool2) {
        if (this.r[paramInt] == null)
        {
          if (!bool2) {}
          switch (paramInt)
          {
          case 0: 
            if (!bool2)
            {
              this.r[paramInt] = new a.d.f(0.0D, paramzc.c(), 0.0D);
              if (!bool1) {
                break;
              }
            }
            break;
          case 1: 
            if (!bool2)
            {
              this.r[paramInt] = new a.d.f(0.0D, paramzc.d(), paramzc.c());
              if (!bool1) {
                break;
              }
            }
            break;
          case 2: 
            if (!bool2)
            {
              this.r[paramInt] = new a.d.f(0.0D, paramzc.c(), paramzc.d());
              if (!bool1) {
                break;
              }
            }
            break;
          case 3: 
            this.r[paramInt] = new a.d.f(0.0D, paramzc.d(), 0.0D);
          }
        }
      }
      return this.r[paramInt];
    }
    
    public a.d.f b(int paramInt)
    {
      if (!d.R) {
        if (this.r == null) {
          return null;
        }
      }
      return this.r[paramInt];
    }
    
    public a.c.d g()
    {
      return this.q.g();
    }
    
    public a.c.e f()
    {
      return this.q.f();
    }
    
    public a.c.v b()
    {
      return this.q.b();
    }
    
    public Object e()
    {
      return this.q.e();
    }
    
    public a.c.e a()
    {
      return this.q.a();
    }
    
    public void a(a.c.e parame)
    {
      throw new UnsupportedOperationException("group cannot be set");
    }
    
    public ac k()
    {
      return this.q.k();
    }
    
    public int h()
    {
      return this.q.h();
    }
    
    public a.c.e j()
    {
      return this.q.j();
    }
    
    public int i()
    {
      return this.q.i();
    }
    
    public byte d()
    {
      return 4;
    }
    
    public int c()
    {
      return this.q.c();
    }
    
    public void a(vb paramvb)
    {
      ((d.q_)this.q).a(paramvb);
    }
    
    public void a(int paramInt)
    {
      ((d.q_)this.q).a(paramInt);
    }
    
    public void a(vc paramvc)
    {
      throw new UnsupportedOperationException("swimlane cannot be set");
    }
  }
  
  static class gb_
    extends d.fb_
  {
    private Object r;
    
    gb_(a.c.e parame, Object paramObject, vc paramvc)
    {
      super(paramvc);
      this.r = paramObject;
    }
    
    public Object e()
    {
      return this.r;
    }
    
    public byte d()
    {
      return 7;
    }
  }
  
  static class ob_
    extends d.fb_
  {
    private Object r;
    
    ob_(a.c.e parame, Object paramObject, vc paramvc)
    {
      super(paramvc);
      this.r = paramObject;
    }
    
    public Object e()
    {
      return this.r;
    }
    
    public byte d()
    {
      return 6;
    }
  }
  
  static class lb_
    extends d.fb_
  {
    private a.c.d r;
    
    lb_(a.c.e parame, a.c.d paramd, vc paramvc)
    {
      super(paramvc);
      this.r = paramd;
    }
    
    public a.c.d g()
    {
      return this.r;
    }
    
    public byte d()
    {
      return 1;
    }
    
    public a.c.z o()
    {
      return null;
    }
  }
  
  static class sb_
    extends d.fb_
    implements d.q_
  {
    private a.c.z r = new a.c.z();
    private a.c.d w;
    
    sb_(a.c.d paramd, vc paramvc)
    {
      super(paramvc);
      this.w = paramd;
    }
    
    public byte d()
    {
      return 10;
    }
    
    public a.c.v b()
    {
      return this.r.f();
    }
    
    public a.c.v a(a.c.d paramd)
    {
      return this.r.b(paramd);
    }
    
    public int c()
    {
      return this.r.size();
    }
    
    public a.c.d g()
    {
      return this.w;
    }
  }
  
  static class nb_
    extends d.fb_
    implements d.q_
  {
    a.c.v r;
    private a.c.e w;
    private a.c.d x;
    
    nb_(a.c.d paramd1, a.c.d paramd2, a.c.e parame, vc paramvc)
    {
      super(paramvc);
      this.x = paramd1;
      this.w = parame;
    }
    
    public byte d()
    {
      return 9;
    }
    
    public a.c.v b()
    {
      return this.r;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      if (!d.R)
      {
        if (this.r == null) {
          this.r = new a.c.z().b(paramd);
        }
      }
      else {
        return this.r;
      }
      throw new UnsupportedOperationException();
    }
    
    public int c()
    {
      return this.r != null ? 1 : 0;
    }
    
    public a.c.e f()
    {
      return this.w;
    }
    
    public a.c.d g()
    {
      return this.x;
    }
  }
  
  static class jb_
    extends d.fb_
    implements d.q_
  {
    a.c.v r;
    private a.c.e w;
    private a.c.d y;
    
    jb_(a.c.d paramd1, a.c.d paramd2, a.c.e parame, vc paramvc)
    {
      super(paramvc);
      this.y = paramd1;
      this.w = parame;
    }
    
    public byte d()
    {
      return 8;
    }
    
    public a.c.v b()
    {
      return this.r;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      if (!d.R)
      {
        if (this.r == null) {
          this.r = new a.c.z().b(paramd);
        }
      }
      else {
        return this.r;
      }
      throw new UnsupportedOperationException();
    }
    
    public int c()
    {
      return this.r != null ? 1 : 0;
    }
    
    public a.c.e f()
    {
      return this.w;
    }
    
    public a.c.d g()
    {
      return this.y;
    }
  }
  
  static class pb_
    extends d.fb_
    implements d.q_
  {
    a.c.e r;
    a.c.d w;
    
    pb_(a.c.e parame, a.c.d paramd, vc paramvc)
    {
      super(paramvc);
      this.r = parame;
      this.w = paramd;
    }
    
    public byte d()
    {
      return 3;
    }
    
    public a.c.e f()
    {
      return this.r;
    }
    
    public a.c.d g()
    {
      return this.w;
    }
  }
  
  static class mb_
    extends d.fb_
    implements d.q_
  {
    byte r;
    private a.c.z w;
    
    mb_(vc paramvc, a.c.e parame, vb paramvb, byte paramByte)
    {
      super(paramvc);
      this.r = paramByte;
      a(parame);
      a(paramvb);
    }
    
    public byte d()
    {
      return this.r;
    }
    
    public a.c.e f()
    {
      return a();
    }
    
    public a.c.v b()
    {
      return (d.R) || (this.w != null) ? this.w.f() : null;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      if (!d.R) {
        if (this.w == null) {
          this.w = new a.c.z();
        }
      }
      return this.w.b(paramd);
    }
    
    public void a(a.c.v paramv)
    {
      this.w.h(paramv);
      if ((d.R) || (this.w.isEmpty())) {
        this.w = null;
      }
    }
    
    public int c()
    {
      return (d.R) || (this.w != null) ? this.w.size() : 0;
    }
  }
  
  static class ib_
    extends d.fb_
    implements d.q_
  {
    a.c.e r;
    a.c.d w;
    
    ib_(a.c.e parame, a.c.d paramd, vc paramvc)
    {
      super(paramvc);
      this.r = parame;
      this.w = paramd;
    }
    
    public byte d()
    {
      return 2;
    }
    
    public a.c.e f()
    {
      return this.r;
    }
    
    public a.c.d g()
    {
      return this.w;
    }
  }
  
  static class hb_
    extends d.fb_
    implements d.q_
  {
    a.c.z r;
    a.d.f[] w;
    final d.tb_ x;
    
    hb_(fc paramfc, vc paramvc, d.tb_ paramtb_)
    {
      super(paramvc);
      if (!d.R) {}
      this.x = (paramtb_ == null ? d.tb_.g : paramtb_);
    }
    
    public d.tb_ l()
    {
      return this.x;
    }
    
    public byte d()
    {
      return 0;
    }
    
    public a.c.v b()
    {
      return (d.R) || (this.r != null) ? this.r.f() : null;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      if (!d.R) {
        if (this.r == null) {
          this.r = new a.c.z();
        }
      }
      return this.r.b(paramd);
    }
    
    public void a(a.c.v paramv)
    {
      this.r.h(paramv);
    }
    
    public int c()
    {
      return (d.R) || (this.r != null) ? this.r.size() : 0;
    }
    
    public a.d.f a(int paramInt, a.f.zc paramzc)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      if (!bool2) {
        if (this.w == null) {
          this.w = new a.d.f[4];
        }
      }
      if (!bool2) {
        if (this.w[paramInt] == null)
        {
          if (!bool2) {}
          switch (paramInt)
          {
          case 0: 
            if (!bool2)
            {
              this.w[paramInt] = new a.d.f(0.0D, paramzc.c(), 0.0D);
              if (!bool1) {
                break;
              }
            }
            break;
          case 1: 
            if (!bool2)
            {
              this.w[paramInt] = new a.d.f(0.0D, paramzc.d(), paramzc.c());
              if (!bool1) {
                break;
              }
            }
            break;
          case 2: 
            if (!bool2)
            {
              this.w[paramInt] = new a.d.f(0.0D, paramzc.c(), paramzc.d());
              if (!bool1) {
                break;
              }
            }
            break;
          case 3: 
            this.w[paramInt] = new a.d.f(0.0D, paramzc.d(), 0.0D);
          }
        }
      }
      return this.w[paramInt];
    }
    
    public a.d.f b(int paramInt)
    {
      if (!d.R) {
        if (this.w == null) {
          return null;
        }
      }
      return this.w[paramInt];
    }
  }
  
  static class qb_
    extends d.fb_
    implements d.q_
  {
    final byte r;
    final d.tb_ w;
    
    qb_(byte paramByte, fc paramfc, vc paramvc, d.tb_ paramtb_)
    {
      super(paramvc);
      this.r = paramByte;
      if (!d.R) {}
      this.w = (paramtb_ == null ? d.tb_.g : paramtb_);
    }
    
    public d.tb_ l()
    {
      return this.w;
    }
    
    public byte d()
    {
      return this.r;
    }
  }
  
  static class h_
    implements d.j_
  {
    private d.j_ h;
    
    h_(d.j_ paramj_)
    {
      this.h = paramj_;
    }
    
    public z m()
    {
      return this.h.m();
    }
    
    public a.c.d c()
    {
      return this.h.c();
    }
    
    public a.c.e b()
    {
      return this.h.b();
    }
    
    public Object j()
    {
      return this.h.j();
    }
    
    public a.f.cd d()
    {
      return this.h.d();
    }
    
    public Collection e()
    {
      return this.h.e();
    }
    
    public Object h()
    {
      return this.h.h();
    }
    
    public a.f.cd f()
    {
      return this.h.f();
    }
    
    public Collection g()
    {
      return this.h.g();
    }
    
    public Object i()
    {
      return this.h.i();
    }
    
    public byte a()
    {
      return 4;
    }
    
    public boolean k()
    {
      return this.h.k();
    }
    
    public boolean l()
    {
      return this.h.l();
    }
    
    public y a(boolean paramBoolean, a.f.cd paramcd)
    {
      this.h = ((d.j_)this.h.a(paramBoolean, paramcd));
      return this;
    }
    
    public void c(boolean paramBoolean)
    {
      this.h.c(paramBoolean);
    }
    
    public void a(boolean paramBoolean)
    {
      this.h.a(paramBoolean);
    }
    
    public boolean n()
    {
      return this.h.n();
    }
  }
  
  static abstract class fb_
    implements d.q_
  {
    vb q;
    int s;
    final fc t;
    vc u;
    a.c.e v;
    
    fb_(fc paramfc, vc paramvc)
    {
      this.t = paramfc;
      this.u = paramvc;
    }
    
    public d.tb_ l()
    {
      return d.tb_.g;
    }
    
    public final vc n()
    {
      return this.u;
    }
    
    public final fc m()
    {
      return this.t;
    }
    
    public a.c.d g()
    {
      throw new UnsupportedOperationException();
    }
    
    public a.c.e f()
    {
      throw new UnsupportedOperationException();
    }
    
    public int h()
    {
      return this.q.e();
    }
    
    public a.c.e j()
    {
      return null;
    }
    
    public int i()
    {
      return this.s;
    }
    
    public void a(vb paramvb)
    {
      this.q = paramvb;
    }
    
    public void a(int paramInt)
    {
      this.s = paramInt;
    }
    
    public ac k()
    {
      return null;
    }
    
    public Object e()
    {
      return null;
    }
    
    public a.c.e a()
    {
      return this.v;
    }
    
    public void a(a.c.e parame)
    {
      this.v = parame;
    }
    
    public a.c.v b()
    {
      return null;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      throw new UnsupportedOperationException();
    }
    
    public void a(a.c.v paramv)
    {
      throw new UnsupportedOperationException();
    }
    
    public int c()
    {
      return 0;
    }
    
    public a.d.f b(int paramInt)
    {
      return null;
    }
    
    public a.d.f a(int paramInt, a.f.zc paramzc)
    {
      throw new UnsupportedOperationException();
    }
    
    public void a(vc paramvc)
    {
      this.u = paramvc;
    }
  }
  
  static class kb_
    extends d.fb_
  {
    a.c.z r;
    private final a.c.e w;
    private final a.c.d x;
    
    public a.c.v b()
    {
      return (d.R) || (this.r != null) ? this.r.f() : null;
    }
    
    public a.c.v a(a.c.d paramd)
    {
      if (!d.R) {
        if (this.r == null) {
          this.r = new a.c.z();
        }
      }
      return this.r.b(paramd);
    }
    
    public void a(a.c.v paramv)
    {
      this.r.h(paramv);
      if ((d.R) || (this.r.isEmpty())) {
        this.r = null;
      }
    }
    
    public int c()
    {
      return (d.R) || (this.r != null) ? this.r.size() : 0;
    }
    
    kb_(vc paramvc, a.c.e parame, vb paramvb, a.c.d paramd)
    {
      super(paramvc);
      this.w = parame;
      this.x = paramd;
      a(parame);
      a(paramvb);
    }
    
    public a.c.d g()
    {
      return this.x;
    }
    
    public a.c.e f()
    {
      return this.w;
    }
    
    public byte d()
    {
      return 15;
    }
  }
  
  static final class s_
    implements rb
  {
    private final a.f.o a;
    private final bc b;
    private ab c;
    private final ac d;
    private final x e;
    private final a.c.n f;
    private jb g;
    private ed h;
    private cd i;
    private k j;
    private cb k;
    private hb l;
    private final a.c.k m;
    private final a.c.k n;
    private final a.c.k o;
    private final a.c.k p;
    private final a.c.k q;
    private final a.c.k r;
    private final a.c.k s;
    private final a.c.k t;
    private final a.c.k u;
    private final a.c.k v;
    private final a.c.n w;
    private final a.i.sb x;
    private static final double y = 0.0D;
    private final Map z = new HashMap();
    private final Map A = new HashMap();
    Comparator B;
    Comparator C;
    
    public s_(a.f.o paramo, ac paramac, bc parambc, ab paramab, x paramx, a.c.n paramn1, a.c.k paramk1, a.c.k paramk2, a.c.k paramk3, a.c.k paramk4, a.c.n paramn2, a.i.sb paramsb)
    {
      this.a = paramo;
      this.d = paramac;
      this.b = parambc;
      this.c = paramab;
      this.f = paramn1;
      this.e = paramx;
      this.m = paramo.c(a.f.ed.a);
      this.n = paramo.c(a.f.ed.b);
      this.o = paramo.c(ad.q);
      this.p = paramo.c(ad.r);
      this.q = paramo.c(a.f.ed.c);
      this.r = paramo.c(a.f.ed.d);
      this.v = paramk4;
      this.t = paramk1;
      this.s = paramk2;
      this.u = paramk3;
      this.w = paramn2;
      this.x = paramsb;
    }
    
    void a(jb paramjb)
    {
      this.g = paramjb;
    }
    
    void a(ed paramed)
    {
      this.h = paramed;
    }
    
    void a(hb paramhb)
    {
      this.l = paramhb;
    }
    
    void a(k paramk)
    {
      this.j = paramk;
    }
    
    void a(cb paramcb)
    {
      this.k = paramcb;
    }
    
    void a(cd paramcd)
    {
      this.i = paramcd;
    }
    
    public a.c.e a(Object paramObject)
    {
      throw new UnsupportedOperationException();
    }
    
    public a.c.e c(vb paramvb, a.c.d paramd)
    {
      a.c.e locale = a(paramvb, paramd);
      a(locale);
      return locale;
    }
    
    public void a(a.c.e parame)
    {
      h(parame);
    }
    
    public void b(a.c.e parame)
    {
      ec localec = this.b.a(parame);
      if ((d.R) || ((localec instanceof d.eb_)))
      {
        localec = ((d.eb_)localec).o();
        this.e.a(parame, localec);
      }
    }
    
    public a.c.e a(vb paramvb, a.c.e parame, a.c.d paramd)
    {
      return a(paramvb, parame, paramd, null);
    }
    
    public a.c.e a(vb paramvb, a.c.e parame, a.c.d paramd, vc paramvc)
    {
      a.c.e locale = this.a.i();
      this.a.b(locale, 0.0D, 0.0D);
      int i1 = parame == paramd.e() ? 1 : 0;
      a.d.w localw = i1 != 0 ? this.a.r(paramd) : this.a.s(paramd);
      this.a.c(locale, localw.a, localw.b);
      b(locale, i1 != 0 ? paramd.e() : paramd.f(), paramd, paramvc);
      paramvb.a(locale);
      return locale;
    }
    
    public void d(a.c.e parame)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      ec localec = this.b.a(parame);
      vb localvb = this.d.a(localec.h());
      a.c.e locale = localec.f();
      a.c.d locald = localec.g();
      a.f.zb localzb = this.a.e(locald);
      if (!bool2)
      {
        if (locald.e() == locale) {
          localzb.a(0.0D, 0.0D);
        }
      }
      else
      {
        int i1 = localzb.a() - 1;
        if (i1 >= 1) {}
        while (bool2)
        {
          a.d.w localw = localzb.a(i1 - 1);
          localzb.a(i1, localw.a, localw.b);
          i1--;
          if (bool2) {
            break label190;
          }
          if (bool1) {
            break label188;
          }
          if (!bool1) {
            break;
          }
        }
        localzb.a(0, this.a.m(parame), this.a.r(locald).b());
        label188:
        label190:
        if (!bool1) {
          break label220;
        }
      }
      localzb.a(this.a.m(parame), this.a.s(locald).b());
      label220:
      localvb.b(parame);
      this.a.a(parame);
    }
    
    public a.c.e a(a.c.d paramd, boolean paramBoolean)
    {
      return a(paramd, paramBoolean, null);
    }
    
    public a.c.e a(a.c.d paramd, boolean paramBoolean, vc paramvc)
    {
      boolean bool = d.R;
      int i1 = this.b.a(paramBoolean ? paramd.e() : paramd.f()).h();
      a.c.e locale = this.a.i();
      if (!bool) {
        this.a.b(locale, 0.0D, 0.0D);
      }
      a.d.w localw = paramBoolean ? this.a.r(paramd) : this.a.s(paramd);
      this.a.c(locale, localw.a, localw.b);
      a(locale, paramBoolean ? paramd.e() : paramd.f(), paramd, paramvc);
      this.d.a(i1).a(locale);
      if (!bool) {
        if (paramBoolean)
        {
          this.z.put(paramd, this.a.p(paramd));
          this.a.a(paramd, a.d.w.c);
          this.a.a(paramd, locale, paramd.f());
          if (!bool) {
            if (!d.Q) {
              break label255;
            }
          }
        }
        else
        {
          this.A.put(paramd, this.a.q(paramd));
          this.a.b(paramd, a.d.w.c);
        }
      }
      this.a.a(paramd, paramd.e(), locale);
      label255:
      return locale;
    }
    
    public a.c.d c(a.c.e parame)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      ec localec = this.b.a(parame);
      vb localvb = this.d.a(localec.h());
      a.c.d locald;
      a.f.zb localzb;
      z localz;
      double d1;
      if (parame.e() > 0)
      {
        this.a.a(locald = parame.h(), localec.f(), parame.h().f());
        this.a.a(locald, (a.d.w)this.z.get(locald));
        localzb = this.a.e(locald);
        localz = this.b.a(locald).m();
        d1 = localz.j() / Math.abs(2);
        a.d.w localw;
        if (!bool2)
        {
          if (localz.i().c() != 1)
          {
            localzb.a(0.0D, 0.0D);
            i1 = localzb.a() - 1;
            do
            {
              if (i1 < 1) {
                break;
              }
              localw = localzb.a(i1 - 1);
              localzb.a(i1, localw.a, localw.b);
              i1--;
              if (bool2) {
                break label264;
              }
              if (bool1) {
                break label262;
              }
            } while (!bool1);
            if (bool2) {
              break label520;
            }
            localzb.a(0, this.a.m(parame), this.a.r(locald).b());
            label262:
            label264:
            if (bool2) {
              break label299;
            }
            if (!bool1) {
              break label840;
            }
          }
          localzb.a(0.0D, 0.0D);
          localzb.a(0.0D, 0.0D);
        }
        label299:
        int i1 = localzb.a() - 1;
        do
        {
          do
          {
            if (i1 < 2) {
              break;
            }
            localw = localzb.a(i1 - 2);
            localzb.a(i1, localw.a, localw.b);
            i1--;
            if (bool2) {
              break label527;
            }
            if (bool1) {
              break label525;
            }
          } while (!bool1);
        } while (bool2);
        if (!bool2)
        {
          if (this.a.m(parame) < this.a.r(locald).a())
          {
            localzb.a(0, this.a.m(parame) + d1, this.a.r(locald).b());
            localzb.a(1, this.a.m(parame), this.a.r(locald).b() + d1);
            if (bool2) {
              break label855;
            }
          }
        }
        else {
          if (!bool1) {
            break label840;
          }
        }
        localzb.a(0, this.a.m(parame) - d1, this.a.r(locald).b());
        label520:
        localzb.a(1, this.a.m(parame), this.a.r(locald).b() + d1);
        label525:
        label527:
        if (!bool2) {
          if (!bool1) {
            break label840;
          }
        }
      }
      else
      {
        this.a.a(locald = parame.i(), parame.i().e(), localec.f());
        this.a.b(locald, (a.d.w)this.A.get(locald));
        localzb = this.a.e(locald);
        localz = this.b.a(locald).m();
        d1 = localz.j() / Math.abs(2);
      }
      if (!bool2) {
        if (localz.i().c() != 1)
        {
          localzb.a(this.a.m(parame), this.a.s(locald).b());
          if (bool2) {
            break label855;
          }
          if (!bool1) {
            break label840;
          }
        }
      }
      if (!bool2)
      {
        if (this.a.m(parame) < this.a.s(locald).a())
        {
          localzb.a(this.a.m(parame), this.a.s(locald).b() - d1);
          localzb.a(this.a.m(parame) + d1, this.a.s(locald).b());
          if (bool2) {
            break label855;
          }
        }
      }
      else {
        if (!bool1) {
          break label840;
        }
      }
      localzb.a(this.a.m(parame), this.a.s(locald).b() - d1);
      localzb.a(this.a.m(parame) - d1, this.a.s(locald).b());
      label840:
      localvb.b(parame);
      this.a.a(parame);
      label855:
      return locald;
    }
    
    public a.c.ab a(a.c.d paramd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      this.a.g(paramd);
      y localy = d(paramd);
      a.c.e locale1 = paramd.e();
      a.c.e locale2 = paramd.f();
      if (!bool2)
      {
        if (locale1 == locale2) {
          this.k.a(this.a, paramd);
        }
      }
      else {
        return null;
      }
      ec localec1 = this.b.a(locale1);
      ec localec2 = this.b.a(locale2);
      int i1 = localec2.h() - localec1.h();
      if (!bool2) {
        if (i1 < 0)
        {
          this.c.a(this.a, this.b, paramd);
          i1 = -i1;
        }
      }
      if (!bool2) {
        if (i1 == 0)
        {
          this.j.a(this.a, paramd);
          return null;
        }
      }
      if (i1 == 1) {
        return new a.c.ab(paramd);
      }
      a.c.ab localab = this.g.a(this.a, paramd, this.d, this.b, this, true);
      if (!bool2) {
        if (i1 == 0)
        {
          this.h.a(this.a, this.d.a(localec1.h()), localy, this, locale1, paramd);
          if ((!bool2) && (!bool1)) {
            break label467;
          }
        }
      }
      if (!bool2)
      {
        if (i1 == 1)
        {
          this.h.c(this.a, this.d.a(this.b.a(locale1).h()), localy, this, locale1, paramd);
          this.h.c(this.a, this.d.a(this.b.a(locale2).h()), localy, this, locale2, paramd);
        }
      }
      else {
        if (!bool1) {
          break label467;
        }
      }
      a.c.d locald1 = localab.m();
      a.c.e locale3 = locald1.e();
      this.h.c(this.a, this.d.a(this.b.a(locale3).h()), localy, this, locale3, locald1);
      a.c.d locald2 = localab.n();
      a.c.e locale4 = locald2.f();
      this.h.c(this.a, this.d.a(this.b.a(locale4).h()), localy, this, locale4, locald2);
      label467:
      return localab;
    }
    
    public a.c.e a(vb paramvb, a.c.d paramd)
    {
      return a(paramvb, paramd, null);
    }
    
    public a.c.e a(vb paramvb, a.c.d paramd, vc paramvc)
    {
      boolean bool = d.R;
      a.c.e locale = this.a.i();
      if (!bool)
      {
        this.a.b(locale, 0.0D, 0.0D);
        if (paramvc == null)
        {
          a(locale, paramd);
          if (bool) {
            break label70;
          }
          if (!d.Q) {
            break label62;
          }
        }
      }
      a(locale, paramd, paramvc);
      label62:
      paramvb.a(locale);
      label70:
      return locale;
    }
    
    public vb a(boolean paramBoolean, int paramInt)
    {
      vb localvb;
      if (!d.R) {
        if (paramBoolean)
        {
          if (paramInt > 0)
          {
            localvb = this.d.a((byte)2, paramInt);
            a(this.d.a(paramInt - 1), false, localvb);
            return localvb;
          }
          throw new IllegalArgumentException();
        }
      }
      if (paramInt < this.d.a())
      {
        localvb = this.d.a((byte)3, paramInt);
        a(this.d.a(paramInt + 2), true, localvb);
        return localvb;
      }
      throw new IllegalArgumentException();
    }
    
    public vb b(boolean paramBoolean, int paramInt)
    {
      if (paramBoolean)
      {
        localvb = this.d.a((byte)1, paramInt);
        a(this.d.a(paramInt - 1), true, localvb);
        return localvb;
      }
      vb localvb = this.d.a((byte)1, paramInt);
      a(this.d.a(paramInt + 2), false, localvb);
      return localvb;
    }
    
    public void a(vb paramvb, boolean paramBoolean)
    {
      c(paramvb, paramBoolean);
    }
    
    private void c(vb paramvb, boolean paramBoolean)
    {
      boolean bool = d.Q;
      this.d.b(paramvb.e());
      a.c.v localv = paramvb.c().f();
      do
      {
        if (localv == null) {
          break;
        }
        a.c.e locale = (a.c.e)localv.c();
        this.g.a(this.a, this.d, locale, this.b, this);
        localv = localv.a();
      } while (!bool);
    }
    
    private void a(vb paramvb1, boolean paramBoolean, vb paramvb2)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.e locale;
      a.c.d[] arrayOfd;
      int i1;
      if (paramBoolean)
      {
        if ((bool2) || (this.B == null)) {
          this.B = new cc.a_(this.a, this.d, this.b);
        }
        localv = paramvb1.c().f();
        label153:
        label155:
        do
        {
          do
          {
            if (localv == null) {
              return;
            }
            locale = (a.c.e)localv.c();
            locale.b(this.B);
            arrayOfd = new a.c.ab(locale.n()).p();
            i1 = 0;
            do
            {
              if (i1 >= arrayOfd.length) {
                break;
              }
              a(arrayOfd[i1], paramvb2, paramBoolean);
              i1++;
              if (bool2) {
                break label155;
              }
              if (bool1) {
                break label153;
              }
            } while (!bool1);
          } while (bool2);
          localv = localv.a();
        } while (!bool1);
      }
      if ((bool2) || (this.C == null)) {
        this.C = new cc.l_(this.a, this.d, this.b);
      }
      a.c.v localv = paramvb1.c().f();
      label297:
      label299:
      do
      {
        do
        {
          if (localv == null) {
            return;
          }
          locale = (a.c.e)localv.c();
          locale.a(this.C);
          arrayOfd = new a.c.ab(locale.m()).p();
          i1 = 0;
          do
          {
            if (i1 >= arrayOfd.length) {
              break;
            }
            a(arrayOfd[i1], paramvb2, paramBoolean);
            i1++;
            if (bool2) {
              break label299;
            }
            if (bool1) {
              break label297;
            }
          } while (!bool1);
        } while (bool2);
        localv = localv.a();
      } while (!bool1);
    }
    
    private a.c.e d(vb paramvb, a.c.d paramd)
    {
      boolean bool = d.R;
      ec localec = (ec)this.e.get(paramd.e());
      if ((bool) || ((localec.d() == 12) || ((bool) || (localec.d() == 13))))
      {
        a.c.e locale = localec.a();
        vc localvc = localec.d() == 12 ? this.l.a(locale) : this.l.b(locale);
        return a(paramvb, paramd, localvc);
      }
      return a(paramvb, paramd);
    }
    
    private void a(a.c.d paramd, vb paramvb, boolean paramBoolean)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      ec localec1 = (ec)this.e.get(paramd.e());
      ec localec2 = (ec)this.e.get(paramd.f());
      if (!bool2) {}
      int i1 = localec1.d() == 1 ? 1 : 0;
      if (!bool2) {}
      int i2 = localec2.d() == 1 ? 1 : 0;
      a.c.e locale;
      Object localObject1;
      Object localObject2;
      if (!bool2) {
        if (i1 != 0)
        {
          if (bool2) {
            break label222;
          }
          if (i2 != 0)
          {
            locale = d(paramvb, localec1.g());
            localObject1 = paramd.f();
            localObject2 = paramd.k();
            if (!bool2)
            {
              if (localObject2 == null) {
                this.a.a(paramd, paramd.e(), paramd.i(), 1, locale, null, 0);
              }
            }
            else
            {
              if (bool2) {
                break label212;
              }
              if (!bool1) {
                break label198;
              }
            }
            this.a.a(paramd, paramd.e(), (a.c.d)localObject2, 0, locale, null, 0);
            label198:
            a(locale, (a.c.e)localObject1, paramd, false, false);
            label212:
            if ((!bool2) && (!bool1)) {
              return;
            }
          }
        }
      }
      label222:
      if (!bool2) {
        if (i1 != 0)
        {
          if (bool2) {
            break label352;
          }
          if (i2 == 0)
          {
            locale = d(paramvb, localec1.g());
            localObject1 = paramd.e();
            localObject2 = paramd.l();
            if (!bool2)
            {
              if (localObject2 == null) {
                this.a.a(paramd, locale, null, 0, paramd.f(), paramd.j(), 1);
              }
            }
            else
            {
              if (bool2) {
                break label342;
              }
              if (!bool1) {
                break label328;
              }
            }
            this.a.a(paramd, locale, null, 0, paramd.f(), paramd.l(), 0);
            a((a.c.e)localObject1, locale, paramd, false, false);
            if ((!bool2) && (!bool1)) {
              return;
            }
          }
        }
      }
      label328:
      label342:
      label352:
      if ((bool2) || ((i2 != 0) && (i1 == 0)))
      {
        locale = d(paramvb, localec2.g());
        localObject1 = paramd.f();
        localObject2 = paramd.k();
        if (!bool2)
        {
          if (localObject2 == null) {
            this.a.a(paramd, paramd.e(), paramd.i(), 1, locale, null, 0);
          }
        }
        else
        {
          if (bool2) {
            break label465;
          }
          if (!bool1) {
            break label451;
          }
        }
        this.a.a(paramd, paramd.e(), (a.c.d)localObject2, 0, locale, null, 0);
        a(locale, (a.c.e)localObject1, paramd, false, false);
        if (!bool1) {}
      }
      else
      {
        locale = null;
        localObject1 = null;
        localObject2 = (y)this.f.get(paramd);
        if (((y)localObject2).a() == 6)
        {
          locale = a(localec1.a(), paramvb, localec1.d());
          paramvb.a(locale);
          a(paramd.e(), locale);
          a(locale, paramd.f());
        }
        else
        {
          locale = d(paramvb, paramd);
          localObject1 = a(paramd.e(), locale, paramd, true, false);
          this.a.a((a.c.d)localObject1, ((a.c.d)localObject1).e(), paramd, 0, ((a.c.d)localObject1).f(), null, 1);
          a(locale, paramd.f(), paramd, false, true);
        }
        this.a.a(paramd);
      }
      label451:
      label465:
      return;
    }
    
    public y f(a.c.d paramd)
    {
      throw new UnsupportedOperationException();
    }
    
    public y e(a.c.d paramd)
    {
      throw new UnsupportedOperationException();
    }
    
    public ec a(a.c.e parame, a.c.d paramd)
    {
      y localy = this.b.a(paramd);
      return a(parame, paramd, this.b.a(localy.k() ? paramd.e() : paramd.f()).n());
    }
    
    public ec a(a.c.e parame, a.c.d paramd, vc paramvc)
    {
      d.lb_ locallb_ = new d.lb_(parame, paramd, paramvc);
      this.e.a(parame, locallb_);
      return locallb_;
    }
    
    public y d(a.c.d paramd)
    {
      boolean bool = d.R;
      a.f.cd localcd1 = null;
      a.f.cd localcd2 = null;
      Object localObject1 = null;
      Object localObject2 = null;
      Object localObject3 = null;
      Object localObject4 = null;
      Object localObject5 = null;
      z localz = null;
      if ((bool) || (this.m != null)) {
        localcd1 = (a.f.cd)this.m.get(paramd);
      }
      if ((bool) || (this.n != null)) {
        localcd2 = (a.f.cd)this.n.get(paramd);
      }
      if ((bool) || (this.o != null))
      {
        localObject1 = (Collection)this.o.get(paramd);
        if (localObject1 != null) {
          localObject1 = new ArrayList((Collection)localObject1);
        }
      }
      if ((bool) || (this.p != null))
      {
        localObject2 = (Collection)this.p.get(paramd);
        if (localObject2 != null) {
          localObject2 = new ArrayList((Collection)localObject2);
        }
      }
      if ((bool) || (this.q != null)) {
        localObject3 = this.q.get(paramd);
      }
      if ((bool) || (this.r != null)) {
        localObject4 = this.r.get(paramd);
      }
      a.c.k localk = this.a.c(a.f.c.i.c);
      if (!bool) {
        if (localk != null)
        {
          if (!bool)
          {
            if (localk.getBool(paramd.e()))
            {
              localObject1 = null;
              localObject3 = null;
            }
            if (bool) {
              break label289;
            }
          }
          if (localk.getBool(paramd.f()))
          {
            localObject2 = null;
            localObject4 = null;
          }
        }
      }
      label289:
      if ((bool) || (this.s != null))
      {
        Object localObject6 = this.s.get(paramd);
        if ((bool) || ((localObject6 instanceof z))) {
          localz = (z)localObject6;
        }
      }
      if (!bool) {
        if (localcd1 == null)
        {
          if (bool) {
            break label369;
          }
          if (localcd2 == null)
          {
            if (bool) {
              break label369;
            }
            if (localObject1 == null)
            {
              if (bool) {
                break label434;
              }
              if (localObject2 == null) {
                break label432;
              }
            }
          }
        }
      }
      label369:
      if ((bool) || ((localObject3 != null) || (localObject4 != null)))
      {
        localObject5 = new d.o_(paramd, localz, localObject3, localObject4, localcd1, (Collection)localObject1, localcd2, (Collection)localObject2);
      }
      else
      {
        localObject5 = new d.n_(paramd, localz, localcd1, (Collection)localObject1, localcd2, (Collection)localObject2, localObject3, localObject4);
        break label476;
        if ((bool) || ((localObject3 != null) || (localObject4 != null))) {
          localObject5 = new d.m_(localz, localObject3, localObject4);
        } else {
          localObject5 = new d.l_(localz);
        }
      }
      label432:
      label434:
      label476:
      this.f.a(paramd, localObject5);
      return localObject5;
    }
    
    public ec g(a.c.e parame)
    {
      boolean bool = d.R;
      fc localfc = null;
      if ((bool) || (this.t != null))
      {
        localObject1 = this.t.get(parame);
        if ((bool) || ((localObject1 instanceof fc))) {
          localfc = (fc)localObject1;
        }
      }
      Object localObject1 = null;
      if ((bool) || (this.u != null))
      {
        localObject2 = this.u.get(parame);
        if ((bool) || ((localObject2 instanceof vc))) {
          localObject1 = (vc)localObject2;
        }
      }
      Object localObject2 = null;
      if ((bool) || (this.v != null))
      {
        localObject3 = this.v.get(parame);
        if ((bool) || ((localObject3 instanceof d.tb_))) {
          localObject2 = (d.tb_)localObject3;
        }
      }
      Object localObject3 = new d.hb_(localfc, (vc)localObject1, (d.tb_)localObject2);
      this.e.a(parame, localObject3);
      return localObject3;
    }
    
    public ec a(a.c.e parame, double paramDouble1, double paramDouble2, a.c.d[] paramArrayOfd)
    {
      d.rb_ localrb_ = new d.rb_(paramDouble1, paramDouble2, paramArrayOfd, null);
      this.e.a(parame, localrb_);
      return localrb_;
    }
    
    public ec b(a.c.e parame1, a.c.e parame2, a.c.d paramd)
    {
      return a(parame1, parame2, paramd, null);
    }
    
    public ec a(a.c.e parame1, a.c.e parame2, a.c.d paramd, vc paramvc)
    {
      d.ib_ localib_ = new d.ib_(parame2, paramd, paramvc);
      this.e.a(parame1, localib_);
      return localib_;
    }
    
    public ec c(a.c.e parame1, a.c.e parame2, a.c.d paramd)
    {
      return b(parame1, parame2, paramd, null);
    }
    
    public ec b(a.c.e parame1, a.c.e parame2, a.c.d paramd, vc paramvc)
    {
      d.pb_ localpb_ = new d.pb_(parame2, paramd, paramvc);
      this.e.a(parame1, localpb_);
      return localpb_;
    }
    
    public ec a(boolean paramBoolean, a.c.e parame1, a.c.d paramd1, a.c.e parame2, a.c.d paramd2)
    {
      Object localObject;
      if (paramBoolean)
      {
        localObject = new d.jb_(paramd1, paramd2, parame2, this.b.a(paramd1.f()).n());
        if (d.R) {
          break label92;
        }
        if (!d.Q) {}
      }
      else
      {
        localObject = new d.nb_(paramd1, paramd2, parame2, this.b.a(paramd1.e()).n());
      }
      this.e.a(parame1, localObject);
      label92:
      return localObject;
    }
    
    public a.c.e a(a.c.e parame, vb paramvb, byte paramByte)
    {
      a.c.e locale = this.a.i();
      this.a.b(locale, 1.0D, 1.0D);
      vc localvc = null;
      switch (paramByte)
      {
      case 12: 
        localvc = this.l.a(parame);
        break;
      case 13: 
        localvc = this.l.b(parame);
      }
      d.mb_ localmb_ = new d.mb_(localvc, parame, paramvb, paramByte);
      this.e.a(locale, localmb_);
      this.l.i(parame).a(locale);
      return locale;
    }
    
    public a.c.e a()
    {
      a.c.e locale = this.a.i();
      this.a.b(locale, 1.0D, 1.0D);
      d.qb_ localqb_ = new d.qb_((byte)14, null, null, null);
      this.e.a(locale, localqb_);
      return locale;
    }
    
    public a.c.e a(vb paramvb, Object paramObject)
    {
      a.c.e locale = this.a.i();
      this.a.b(locale, 0.0D, 0.0D);
      if (!d.R) {}
      a(locale, paramObject, paramvb.d() == 2);
      paramvb.a(locale);
      return locale;
    }
    
    public ec a(a.c.e parame, Object paramObject, boolean paramBoolean)
    {
      Object localObject;
      if (paramBoolean)
      {
        localObject = new d.ob_(parame, paramObject, null);
        if (d.R) {
          break label52;
        }
        if (!d.Q) {}
      }
      else
      {
        localObject = new d.gb_(parame, paramObject, null);
      }
      this.e.a(parame, localObject);
      label52:
      return localObject;
    }
    
    public ec c(a.c.e parame, a.c.d paramd)
    {
      d.sb_ localsb_ = new d.sb_(paramd, this.b.a(paramd.e()).n());
      this.e.a(parame, localsb_);
      return localsb_;
    }
    
    public ec h(a.c.e parame)
    {
      d.eb_ localeb_ = new d.eb_(parame, (ec)this.e.get(parame));
      this.e.a(parame, localeb_);
      return localeb_;
    }
    
    public a.c.d a(a.c.e parame1, a.c.e parame2)
    {
      a.c.d locald = this.a.a(parame1, parame2);
      d.r_ localr_ = new d.r_();
      this.f.a(locald, localr_);
      return locald;
    }
    
    public a.c.e a(a.c.e parame, Object paramObject, vb paramvb, a.c.d paramd)
    {
      boolean bool = d.R;
      a.c.e locale1 = paramd.a(parame);
      Object localObject = null;
      if (!bool) {
        if ((this.e.get(locale1) instanceof ec))
        {
          localObject = ((ec)this.e.get(locale1)).n();
          break label100;
        }
      }
      if ((bool) || ((this.u.get(locale1) instanceof vc))) {
        localObject = (vc)this.u.get(locale1);
      }
      label100:
      vc localvc1 = this.l.a(parame);
      vc localvc2 = this.l.b(parame);
      if ((bool) || (localvc1 != null))
      {
        if (bool) {
          break label148;
        }
        if (localvc2 != null) {}
      }
      else
      {
        localObject = null;
        break label209;
      }
      label148:
      if (!bool) {
        if (localObject != null)
        {
          if (!bool) {
            if (localvc1.compareTo(localObject) > 0) {
              localObject = localvc1;
            }
          }
          if (!bool)
          {
            if (localvc2.compareTo(localObject) >= 0) {
              break label209;
            }
            if (bool) {
              break label207;
            }
            localObject = localvc2;
          }
          if (!d.Q) {
            break label209;
          }
        }
      }
      label207:
      localObject = localvc1;
      label209:
      a.c.e locale2 = this.a.i();
      this.a.b(locale2, 0.0D, 0.0D);
      d.kb_ localkb_ = new d.kb_((vc)localObject, parame, paramvb, paramd);
      this.e.a(locale2, localkb_);
      paramvb.a(locale2);
      return locale2;
    }
    
    public a.c.d a(a.c.e parame1, a.c.e parame2, a.c.d paramd, boolean paramBoolean1, boolean paramBoolean2)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.d locald = this.a.a(parame1, parame2);
      y localy = this.b.a(paramd);
      Object localObject;
      if (!bool2) {
        if (paramBoolean1)
        {
          localObject = new d.cb_(paramd, localy);
          this.a.a(locald, this.a.p(paramd));
          if (bool2) {
            break label151;
          }
          if (!bool1) {
            break label138;
          }
        }
      }
      if (paramBoolean2)
      {
        localObject = new d.bb_(paramd, localy);
        this.a.b(locald, this.a.q(paramd));
        if (bool2) {
          break label151;
        }
        if (!bool1) {}
      }
      else
      {
        localObject = new d.z_(paramd, localy);
      }
      label138:
      this.f.a(locald, localObject);
      label151:
      return locald;
    }
    
    public a.c.d b(a.c.e parame1, a.c.e parame2, a.c.d paramd, boolean paramBoolean1, boolean paramBoolean2)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.d locald = this.a.a(parame1, parame2);
      y localy = this.b.a(paramd);
      Object localObject;
      if (!bool2) {
        if (paramBoolean1)
        {
          localObject = new d.db_(paramd, localy);
          this.a.a(locald, this.a.q(paramd));
          if (bool2) {
            break label161;
          }
          if (!bool1) {
            break label148;
          }
        }
      }
      if (paramBoolean2)
      {
        localObject = new d.ab_(paramd, localy);
        this.a.b(locald, this.a.p(paramd));
        if (bool2) {
          break label161;
        }
        if (!bool1) {}
      }
      else
      {
        d.z_ localz_ = new d.z_(paramd, localy);
        localz_.c(true);
        localObject = localz_;
      }
      label148:
      this.f.a(locald, localObject);
      label161:
      return locald;
    }
    
    public a.c.d a(a.c.e parame1, a.c.e parame2, a.c.d paramd)
    {
      a.c.d locald = this.a.a(parame1, parame2);
      ec localec1 = (ec)this.e.get(parame1);
      ec localec2 = (ec)this.e.get(parame2);
      d.p_ localp_ = new d.p_(localec1.e(), localec2.e(), paramd, paramd != null ? this.b.a(paramd).m() : null);
      this.f.a(locald, localp_);
      return locald;
    }
    
    public void b(a.c.d paramd)
    {
      d.q_ localq_ = (d.q_)this.e.get(paramd.e());
      localq_.a(paramd);
      localq_ = (d.q_)this.e.get(paramd.f());
      localq_.a(paramd);
      this.d.a(localq_.h()).a(paramd);
    }
    
    public a.c.d a(vb paramvb, a.c.d paramd, a.c.e parame)
    {
      boolean bool2 = d.R;
      boolean bool1 = paramd.e() == parame;
      a.c.e locale = this.a.i();
      if (!bool2)
      {
        this.a.b(locale, 0.0D, 0.0D);
        if (bool1)
        {
          locald = this.a.a(parame, locale);
          this.a.a(locald, this.a.p(paramd));
          this.a.a(paramd, a.d.w.c);
          this.a.a(paramd, locale, paramd.f());
          localObject = new d.cb_(paramd, this.b.a(paramd));
          if (bool2) {
            break label243;
          }
          if (!d.Q) {
            break label209;
          }
        }
      }
      a.c.d locald = this.a.a(locale, parame);
      this.a.b(locald, this.a.q(paramd));
      this.a.b(paramd, a.d.w.c);
      this.a.a(paramd, paramd.e(), locale);
      Object localObject = new d.bb_(paramd, this.b.a(paramd));
      label209:
      this.f.a(locald, localObject);
      a(bool1, locale, paramd, parame, locald);
      paramvb.a(locale);
      label243:
      return locald;
    }
    
    public a.c.d c(a.c.d paramd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.f.zb localzb1 = this.a.e(paramd);
      y localy = this.b.a(paramd);
      int i1 = localy.c().e() == paramd.f() ? 1 : 0;
      a.c.e locale1;
      a.c.e locale2;
      a.f.zb localzb2;
      a.d.w localw1;
      label187:
      label189:
      a.d.w localw2;
      if (i1 != 0)
      {
        locale1 = paramd.f();
        locale2 = paramd.e();
        localzb2 = this.a.e(locale1.h());
        localw1 = this.a.s(paramd);
        localzb1.a(localw1.a, localw1.b);
        this.a.a(locale1.h(), this.a.p(paramd));
        i2 = 0;
        do
        {
          do
          {
            if (i2 >= localzb1.a()) {
              break;
            }
            localzb2.a(0.0D, 0.0D);
            i2++;
            if (bool2) {
              break label189;
            }
            if (bool1) {
              break label187;
            }
          } while (!bool1);
        } while (bool2);
        i2 = localzb2.a() - 1;
        do
        {
          do
          {
            if (i2 < localzb1.a()) {
              break;
            }
            localw2 = localzb2.a(i2 - localzb1.a());
            localzb2.a(i2, localw2.a, localw2.b);
            i2--;
            if (bool2) {
              break label263;
            }
            if (bool1) {
              break label261;
            }
          } while (!bool1);
        } while (bool2);
        i2 = 0;
        label261:
        label263:
        do
        {
          if (i2 >= localzb1.a()) {
            break;
          }
          localw2 = localzb1.a(i2);
          localzb2.a(i2, localw2.a, localw2.b);
          i2++;
          if (bool2) {
            break label359;
          }
          if (bool1) {
            break label357;
          }
        } while (!bool1);
        this.a.a(paramd = locale1.h(), locale2, locale1.h().f());
        if (!bool2)
        {
          this.a.a(locale1);
          label357:
          label359:
          if (bool2) {
            break label441;
          }
          if (!bool1) {
            return paramd;
          }
        }
      }
      else
      {
        locale1 = paramd.e();
        locale2 = paramd.f();
        localzb2 = this.a.e(locale1.i());
        localw1 = this.a.r(paramd);
        localzb2.a(localw1.a, localw1.b);
      }
      this.a.b(locale1.i(), this.a.q(paramd));
      label441:
      int i2 = 0;
      do
      {
        if (i2 >= localzb1.a()) {
          break;
        }
        localw2 = localzb1.a(i2);
        localzb2.a(localw2.a, localw2.b);
        i2++;
        if ((!bool2) && (bool1)) {
          break label528;
        }
      } while (!bool1);
      if (!bool2) {
        this.a.a(paramd = locale1.i(), locale1.i().e(), locale2);
      }
      label528:
      this.a.a(locale1);
      return paramd;
    }
    
    public a.c.e b(vb paramvb, a.c.d paramd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      a.c.e locale = this.a.i();
      this.a.b(locale, 0.0D, 0.0D);
      ArrayList localArrayList1 = new ArrayList();
      ArrayList localArrayList2 = new ArrayList();
      if (!bool2) {
        if (this.x != null)
        {
          if (bool2) {
            break label154;
          }
          localObject1 = (a.f.kc[])this.x.get(paramd);
          if (localObject1 != null)
          {
            int i1 = 0;
            label145:
            do
            {
              if (i1 >= localObject1.length) {
                break;
              }
              localObject2 = localObject1[i1];
              fd localfd = ((a.f.kc)localObject2).g();
              if (!bool2) {
                if (localfd.l())
                {
                  localArrayList2.add(localObject2);
                  if (bool2) {
                    continue;
                  }
                  if (!bool1) {
                    break label145;
                  }
                }
              }
              localArrayList1.add(localObject2);
              i1++;
            } while (!bool1);
          }
        }
      }
      label154:
      a.c.d locald = this.a.a(paramd.e(), locale);
      this.a.a(locald, this.a.p(paramd));
      Object localObject1 = new d.cb_(paramd, this.b.a(paramd));
      if (!bool2) {
        if (this.w != null) {
          this.w.a(locald, localArrayList1.toArray(new a.f.kc[localArrayList1.size()]));
        }
      }
      this.f.a(locald, localObject1);
      Object localObject2 = this.a.a(locale, paramd.f());
      this.a.b((a.c.d)localObject2, this.a.q(paramd));
      localObject1 = new d.bb_(paramd, this.b.a(paramd));
      if (!bool2) {
        if (this.w != null) {
          this.w.a(localObject2, localArrayList2.toArray(new a.f.kc[localArrayList2.size()]));
        }
      }
      this.f.a(localObject2, localObject1);
      c(locale, paramd);
      paramvb.a(locale);
      this.a.a(paramd);
      return locale;
    }
    
    public a.c.d f(a.c.e parame)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      ec localec = this.b.a(parame);
      a.c.d locald1 = localec.g();
      if (!bool2) {
        if (locald1.e().g() == null)
        {
          this.a.c(locald1.e());
          this.a.a(locald1.e(), this.a.o(parame.i().e()));
        }
      }
      if (locald1.f().g() == null)
      {
        this.a.c(locald1.f());
        this.a.a(locald1.f(), this.a.o(parame.h().f()));
      }
      this.a.d(locald1);
      a.f.zb localzb1 = this.a.e(locald1);
      localzb1.b();
      a.c.d locald2 = parame.i();
      this.a.a(locald1, this.a.p(locald2));
      a.f.zb localzb2 = this.a.e(locald2);
      int i1 = 0;
      do
      {
        if (i1 >= localzb2.a()) {
          break;
        }
        if (bool1) {
          break label248;
        }
        a.d.w localw2 = localzb2.a(i1);
        localzb1.a(localw2.a, localw2.b);
        i1++;
      } while (!bool1);
      label248:
      a.d.w localw1 = this.a.o(parame);
      localzb1.a(localw1.a, localw1.b);
      locald2 = parame.h();
      localzb2 = this.a.e(locald2);
      int i2 = 0;
      do
      {
        if (i2 >= localzb2.a()) {
          break;
        }
        a.d.w localw3 = localzb2.a(i2);
        localzb1.a(localw3.a, localw3.b);
        i2++;
        if ((!bool2) && (bool1)) {
          break label375;
        }
      } while (!bool1);
      this.a.b(locald1, this.a.q(locald2));
      if (!bool2) {
        this.a.a(parame);
      }
      label375:
      return locald2;
    }
    
    public y a(a.c.d paramd, boolean paramBoolean, a.f.cd paramcd)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      Object localObject = (y)this.f.get(paramd);
      if (!bool2)
      {
        if ((localObject instanceof d.j_))
        {
          localObject = ((d.j_)localObject).a(paramBoolean, paramcd);
          if (bool2) {
            break label301;
          }
          if (!bool1) {}
        }
        else
        {
          System.err.println("warning : unidentified edge type " + localObject + " for " + paramd);
        }
      }
      else if (localObject != null)
      {
        localObject = new d.o_(paramd, ((y)localObject).m(), ((y)localObject).h(), ((y)localObject).i(), ((y)localObject).d(), ((y)localObject).e(), ((y)localObject).f(), ((y)localObject).g());
        if (bool2) {
          break label301;
        }
        if (!bool1) {}
      }
      else if (((bool2) || (this.s != null)) && ((this.s.get(paramd) instanceof z)))
      {
        localObject = new d.n_(paramd, (z)this.s.get(paramd), paramBoolean ? paramcd : null, null, paramBoolean ? null : paramcd, null);
        if (bool2) {
          break label301;
        }
        if (!bool1) {}
      }
      else
      {
        localObject = new d.n_(paramd, new z(), paramBoolean ? paramcd : null, null, paramBoolean ? null : paramcd, null);
      }
      this.f.a(paramd, localObject);
      label301:
      return localObject;
    }
    
    public y a(a.c.d paramd, Object paramObject1, Object paramObject2)
    {
      y localy = (y)this.f.get(paramd);
      d.o_ localo_ = new d.o_(paramd, localy.m(), paramObject1, paramObject2, localy.d(), localy.e(), localy.f(), localy.g());
      this.f.a(paramd, localo_);
      return localo_;
    }
    
    public a.c.e a(vb paramvb, Rectangle2D.Double paramDouble, a.c.d[] paramArrayOfd)
    {
      a.c.e locale = this.a.i();
      this.a.b(locale, paramDouble.width, paramDouble.height);
      this.a.c(locale, paramDouble.x, paramDouble.y);
      a(locale, paramDouble.x, paramDouble.y, paramArrayOfd);
      paramvb.a(locale);
      return locale;
    }
    
    public void e(a.c.e parame)
    {
      boolean bool2 = d.R;
      boolean bool1 = d.Q;
      d.rb_ localrb_ = (d.rb_)this.e.get(parame);
      vb localvb = this.d.a(localrb_.h());
      a.f.zc localzc = this.a.d(parame);
      double d1 = localzc.a() - localrb_.z;
      double d2 = localzc.b() - localrb_.y;
      int i1 = 0;
      label196:
      label198:
      do
      {
        if (i1 >= localrb_.x.length) {
          break;
        }
        a.c.d locald = localrb_.x[i1];
        a.f.zb localzb = this.a.e(locald);
        if ((!bool2) && (bool1)) {
          return;
        }
        int i2 = 0;
        do
        {
          if (i2 >= localzb.a()) {
            break;
          }
          a.d.w localw = localzb.a(i2);
          localzb.a(i2, localw.a + d1, localw.b + d2);
          i2++;
          if (bool2) {
            break label198;
          }
          if (bool1) {
            break label196;
          }
        } while (!bool1);
        if (!bool2) {
          i1++;
        }
      } while (!bool1);
      localvb.b(parame);
      if (!bool2) {
        this.a.a(parame);
      }
    }
    
    public void g(a.c.d paramd)
    {
      Object localObject = (d.j_)this.f.get(paramd);
      localObject = new d.h_((d.j_)localObject);
      this.f.a(paramd, localObject);
    }
  }
  
  static abstract interface j_
    extends y
  {
    public abstract void c(boolean paramBoolean);
    
    public abstract y a(boolean paramBoolean, a.f.cd paramcd);
  }
  
  static abstract interface q_
    extends ec
  {
    public abstract void a(vb paramvb);
    
    public abstract void a(int paramInt);
    
    public abstract void a(a.c.e parame);
    
    public abstract void a(vc paramvc);
    
    public abstract a.c.v a(a.c.d paramd);
    
    public abstract void a(a.c.v paramv);
  }
  
  public static final class tb_
  {
    public static final byte a = -1;
    public static final byte b = 0;
    public static final byte c = 1;
    public static final byte d = 4;
    public static final byte e = 5;
    public static final byte f = 6;
    public static final tb_ g = new tb_((byte)-1);
    static final tb_ h = new tb_((byte)0);
    static final tb_ i = new tb_((byte)1);
    static final tb_ j = new tb_((byte)4);
    static final tb_ k = new tb_((byte)6);
    static final tb_ l = new tb_((byte)5);
    final byte m;
    public static boolean n;
    
    private tb_(byte paramByte)
    {
      this.m = paramByte;
    }
    
    public byte a()
    {
      return this.m;
    }
  }
  
  static class y_
    implements Comparator
  {
    private a.c.k a;
    private a.c.k c;
    private int[] e;
    
    y_(a.c.k paramk1, a.c.k paramk2, int[] paramArrayOfInt)
    {
      this.a = paramk1;
      this.c = paramk2;
      this.e = paramArrayOfInt;
    }
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      boolean bool = d.R;
      int i = this.c.getInt(paramObject1);
      int j = this.c.getInt(paramObject2);
      jc localjc1 = (jc)this.a.get(paramObject1);
      jc localjc2 = (jc)this.a.get(paramObject2);
      int k = (bool) || (localjc1 != null) ? localjc1.c().a() : this.e[i];
      int m = (bool) || (localjc2 != null) ? localjc2.c().a() : this.e[j];
      int n = a.i.l.a(k, m);
      if (!bool) {
        if (n != 0) {
          return n;
        }
      }
      return a.i.l.a(i, j);
    }
  }
  
  private static final class x_
    implements Comparator
  {
    private a.c.k a;
    
    x_(a.c.k paramk)
    {
      this.a = paramk;
    }
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      boolean bool = d.R;
      int i = this.a.getInt(paramObject1);
      int j = this.a.getInt(paramObject2);
      if (!bool)
      {
        if (i > j) {
          return -1;
        }
        if (bool) {}
      }
      else if (i < j)
      {
        return 1;
      }
      return 0;
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.d.a.d

 * JD-Core Version:    0.7.0.1

 */